2009-09-04 15 views
31

私はレポートを生成するためのいくつかのオプションがあるドロップダウンリストを持っています。アカウントのタイプに基づいて、ユーザは、(アップグレードするためのインセンティブとして)表示可能であるが選択できない特定のオプションを有する。ドロップダウンリスト項目を選択できない

誰かがこれを達成する方法を知っているのだろうかと思っていました。

権限がすでに設定されています。特定のアイテムを選択できないようにするための支援が必要です。

ご協力いただければ幸いです。

ショーン

答えて

53

まだこの回答をお探しですか?

Mark Redman's answerは、aspxページで選択リストを定義することができればすばらしいですが、ドロップダウンリストを動的にバインドすると明示的にバインドできません。

私はこれがグレーアウトあなた無効の要素をレンダリングします

foreach (ListItem item in dropdownlist.Items) 
{ 
    if ([item should be disabled condition]) 
    { 
     item.Attributes.Add("disabled", "disabled"); 
    } 
} 

あなたは後に(フルブラウザのサポートにわからないが、IEの新しいバージョンで動作します)ある結果を達成するために、次を使用して成功を収めました。

+0

'Page_Load'イベントにあなたの提案したコードを追加しようとしていますが、無効にしたいListItem項目(Select)はまだグレー表示されていません。どんな考え? –

+0

アイテムを無効にしますか?もしそうなら、あまりにも調整が必要なスタイルかもしれませんか? –

+2

ドロップダウンリストコントロールのデータバインディングイベントハンドラにコードを追加する必要があります。 –

2

必要なフィールドバリデータを使用して、選択したくないドロップダウンリスト内の項目の値に初期値プロパティを設定することができます。

<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" 
         ErrorMessage="" ControlToValidate="DropDown" InitialValue="Unselectable Item"></asp:RequiredFieldValidator> 
0

アイテムが選択されたときにトリガーされるハンドラーを使用して、このクライアント側で行うことができます。その後、アイテムの選択を解除し、エラーメッセージを表示します。

16

は、HTML <select>

を参照してくださいに<option>タグを無効にすることができます。これは無効になります。この

myDropDownList.Items.FindByValue("ReportValue").Enabled = false; 

を試してみてください

<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> 
+0

を試みることができます? –

+0

私はこのためのコードを書く必要はありませんでした! :-) –

-3

:asp.netでhttp://www.htmlref.com/reference/appa/tag_option.htm

基本的にはリストからの項目はありませんそれをリストに表示します。

"ReportValue" =無効にするアイテムの値。

+1

彼は、無効にされた要素を選択できないようにしたいので、これが機能するかどうかは分かりません。 –

3

私はこの同じ問題を抱え、投稿された最初の回答を使用しようとしましたが、それは私のためには機能しませんでした。私は最初の投稿を次のように変更しました:

foreach (ListItem item in dropdownlist.Items) 
{ 
    if ([item should be disabled contdition]) 
    { 
    item.Enabled = false; 
    } 
} 

それは私のために働いていました。

+5

この方法では、リストから要素を削除し、無効にしません。したがって、この記事の最初の質問には答えていません。 –

-1

これがHTMLコントロールであれば、非常に簡単にUNselectableにすることができます。 "optgroup" HTML要素を使用してください。例えば

<select> 
<optgroup label="Hardware"></optgroup> 
<option id="1">mouse</option> 
<option id="2">keyboard</option> 
<option id="3">monitor</option> 
<optgroup label="Software"></optgroup> 
<option id="Option1">windows XP</option> 
<option id="Option2">MS Office</option> 
<option id="Option3">VStudio</option> 
</select> 

は(注:これはIE/Firefoxの両方で動作します)

おかげ スシルJinder

+3

これは 'optgroup'の目的ではありません。 – You

1

あなたはASP.NETでそれを行うにはどのようにこの

myDropDownList.Items.FindByValue("ReportValue").Attributes.Add("disabled", "disabled"); 
関連する問題