是否可以以编程方式隐藏单选按钮列表的特定列表项?
Posted
技术标签:
【中文标题】是否可以以编程方式隐藏单选按钮列表的特定列表项?【英文标题】:Is it possible to hide a particular list item of radiobuttonlist programmatically? 【发布时间】:2013-03-25 09:21:21 【问题描述】:我在我的 aspx 页面中使用了 gridview。我有一个列表,其中一个单元格中有六个单选按钮,水平对齐。
我需要隐藏第一个单选按钮。如何以编程方式实现这一目标?
<asp:GridView ID="CrowdRatingGrid" runat="server" AutoGenerateColumns="false" AllowPaging="true" PageSize="4" OnPageIndexChanging="CrowdRatingGrid_PageIndexChanging" ViewStateMode="Enabled">
<PagerSettings Mode="Numeric" PageButtonCount="4" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
Rating
</HeaderTemplate>
<ItemTemplate>
<asp:RadioButtonList runat="server" ID="Rating" SelectedValue='<%# Bind("rating_id") %>'
RepeatDirection="Horizontal">
<asp:ListItem Value="0" />
<asp:ListItem Value="1" />
<asp:ListItem Value="2" />
<asp:ListItem Value="3" />
<asp:ListItem Value="4" />
<asp:ListItem Value="5" />
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我需要隐藏 value=0 的列表项。我将如何实现这一目标?
【问题讨论】:
如果您需要针对特定项目使用不同的逻辑,请不要使用RadioButtonList
,而是使用单个RadioButtons
。您可以使用 Panel
之类的容器控件和适当的 CSS 进行布局。当可用选项列表中只能选择一个时,请使用 GroupName
。
【参考方案1】:
是的,您可以通过将其Enabled
属性设置为false
来隐藏它:
Rating.Items[0].Enabled = false;
根据 OP 的评论进行编辑。要完全摆脱它,您需要这样做:
Rating.Items.RemoveAt(0);
然后当你想要它回来时,你需要这样做:
Rating.Items.Insert(0, "0");
【讨论】:
我需要隐藏它...您的代码只是禁用了单选按钮【参考方案2】:编辑:好的,我对此进行了更深入的研究,看看当您将 RadioButtonList 控件设置为“水平”时 .NET 如何呈现它(这是一个每个项目都有<td>
的表格)。
试试这个:
var bli = Rating.Items[ 0 ];
bli.Attributes.Add( "hidden", "hidden" );
【讨论】:
我需要隐藏它...您的代码只是禁用了单选按钮 您能解释一下隐藏和禁用单选按钮之间的区别吗? 隐藏意味着单选按钮将在屏幕上不可见...禁用意味着它将可见但无法检查 @Xavier - 明白,我想确定我看到的和 Coder 看到的一样。有时隐藏并不总是隐藏在 asp.net 世界中......在意识到我的建议不适用于 Coder 想要做的事情后,我更新了我的答案。【参考方案3】:一切正常。
RadioButtonList.Items[index].Enable=True/False;
例如:
rdTypePackage.Items[1].Enabled = false;
【讨论】:
这不会隐藏 ListItem,它只会在页面上显示为禁用。【参考方案4】:radioListID.Items[index].Enabled = true/false;
它将 100% 工作。
【讨论】:
这不会隐藏 ListItem,它只会在页面上显示为禁用。【参考方案5】:旧线程,虽然你可以做到这一点:
//Ensure the item is disabled
rblRating.Items[0].Enabled = false;
//Ensure the item is not selected
rblRating.Items[0].Selected = false;
//next row of code is hiding your radio button list item through css
rblRating.Items[0].Attributes[htmlTextWriterStyle.Visibility] = "hidden";
【讨论】:
【参考方案6】:ListItem li = Rating.Items(0);
Rating.Items.Remove(li);
【讨论】:
以上是关于是否可以以编程方式隐藏单选按钮列表的特定列表项?的主要内容,如果未能解决你的问题,请参考以下文章