Aspxページでgridviewを使用しました。1つのセルに6つのラジオボタンが水平に配置されたリストがあります。
最初のラジオボタンを非表示にする必要があります。プログラムでそれを達成する方法は?
<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のリストアイテムを非表示にする必要があります。どうすればこれを達成できますか?
はい、 Enabled
プロパティをfalse
に設定することで非表示にできます:
Rating.Items[0].Enabled = false;
OPによるコメントに基づく編集。それを完全に取り除くには、これを行う必要があります:
Rating.Items.RemoveAt(0);
そして、あなたがそれを取り戻したいとき、あなたはこれをする必要があるでしょう:
Rating.Items.Insert(0, "0");
編集:わかりました。これをもう少し深く掘り下げて、水平に設定したときに.NETがRadioButtonListコントロールをどのようにレンダリングするかを確認します(各項目に<td>
が付いたテーブルです)。
これを試して:
var bli = Rating.Items[ 0 ];
bli.Attributes.Add( "hidden", "hidden" );
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";
正常に動作しています。
RadioButtonList.Items[index].Enable=True/False;
例:
rdTypePackage.Items[1].Enabled = false;