是否可以通过编程方式隐藏单选按钮列表的特定列表项

本文关键字:列表 单选按钮 可以通过 编程 方式 隐藏 是否 | 更新日期: 2023-09-27 18:07:11

我在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>

我需要隐藏值为0的列表项。我将如何实现这一点?

是否可以通过编程方式隐藏单选按钮列表的特定列表项

是的,您可以通过将其Enabled属性设置为false:来隐藏一个

Rating.Items[0].Enabled = false;

根据OP的评论进行编辑。要完全消除它,你需要这样做:

Rating.Items.RemoveAt(0);

然后当你想要它回来的时候,你需要这样做:

Rating.Items.Insert(0, "0");

EDIT:好的,我深入研究了一下,看看当您将RadioButtonList控件设置为Horizontal时,.NET是如何渲染它的(这是一个每个项都有<td>的表(。

试试这个:

var bli = Rating.Items[ 0 ];
bli.Attributes.Add( "hidden", "hidden" );

运行良好。

RadioButtonList.Items[index].Enable=True/False;

例如:

rdTypePackage.Items[1].Enabled = false;
radioListID.Items[index].Enabled = true/false;

它将100%发挥作用。

旧线程,不过要实现这一点,您可以执行以下操作:

//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";
ListItem li = Rating.Items(0);
Rating.Items.Remove(li);