レポートを生成するためのいくつかのオプションがあるドロップダウンリストがあります。アカウントの種類に基づいて、ユーザーには表示されるべきであるが選択できない特定のオプションがあります(アップグレードのインセンティブとして)。
誰もこれを達成する方法を知っているのだろうかと思っていました。
権限はすでに設定されているため、特定の項目を選択できないようにするためのサポートが必要です。
どんな助けでも大歓迎です。
あなたはまだこれに対する答えを探しているかどうかわからない?
Mark Redmanの答え は、aspxページで選択リストを定義できる場合は素晴らしいですが、ドロップダウンリストを動的にバインドする場合は明らかにできません。
私はあなたが望んでいる結果を達成するために以下を使用して成功しました(ブラウザの完全なサポートは確かではありませんが、IEの新しいバージョンで動作します)
foreach ( ListItem item in dropdownlist.Items )
{
if ( [item should be disabled condition] )
{
item.Attributes.Add( "disabled", "disabled" );
}
}
これにより、無効な要素がグレー表示されます。
Htmlの<option>
タグを無効にすることができます<select>
参照: http://www.htmlref.com/reference/appa/tag_option.htm
asp.net:
<asp:DropDownList ID="MyDropDownList" runat="server">
<asp:ListItem Text="Standard Report" Value="SR"></asp:ListItem>
<asp:ListItem Text="Enterprise Report" Value="ER" disabled="disabled"></asp:ListItem>
</asp:DropDownList>
これを試すことができます
myDropDownList.Items.FindByValue("ReportValue").Attributes.Add("disabled", "disabled");
必須フィールドバリデータを使用して、初期値プロパティを、選択できないドロップダウンリスト内のアイテムの値に設定できます。
<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server"
ErrorMessage="" ControlToValidate="DropDown" InitialValue="Unselectable Item"></asp:RequiredFieldValidator>
私はこれと同じ問題を抱えており、投稿された最初の回答を使用しようとしましたが、それは私にはうまくいきませんでした。次に、最初の投稿を次のように変更しました。
foreach ( ListItem item in dropdownlist.Items )
{
if ( [item should be disabled contdition] )
{
item.Enabled = false;
}
}
そしてそれは私のために働いた。
このクライアント側では、アイテムが選択されたときにトリガーされるハンドラーを使用できます。次に、アイテムの選択を解除するか、エラーメッセージを表示します。