2009-08-31 10 views
2

私はこのリストに埋め込まれるオプションのいくつかを無効にする必要があるサーバー側に記入するドロップダウンリストを持っています。実際には、disabled = 'disabled'属性を追加する必要があることを知っています。asp.netのDropDownListオプションをサーバー側で無効にするにはどうすればいいですか?

これが私が試した最初の方法です。

Dim avListItems = activityVersions.Select(Function(av) New With {.Text = av.Text, .Value = av.Value, .Disabled=av.HasQuota}).ToList() 

しかし、disabled属性がある場合はHTML disabled属性で、それがどのような場合でのオプションを無効に値を必要としないので、これはすべてのオプションを無効にします。しかし、私は、クォータを持たず、他のオプションを有効にしなければならないオプションに対して無効な属性を追加できる解決策が必要です。

ご意見はありますか?

+0

表示してくださいあなたはDDLにこのデータを挿入するコード。 –

答えて

0

ドロップダウンリストで個々の項目を無効にすることはできません。 MSDNを参照してください。

無効なオプションが選択されている場合にユーザーに通知するか、リストからそれらのアイテムを完全に削除するために、検証を適用することをお勧めします。

+2

あなたの権利は、asp.netコントロールを介して許可されていませんが、HTMLで許可されているので、あなたはちょうどバインドイベントの後に乗ることができます、私の答えを参照してください。 – TheAlbear

2

実際には、ドロップダウンリストの項目を無効にすることは可能です。あなたがしなければならないことは、リストをバインドして新しい属性を追加することです。 次の例では、国のリストを想定している。..

List<Country> countryList = CountryFunctions.CreateCountryCollection(); 

       ddlCountryList.DataSource = countryList; 
       ddlCountryList.DataTextField = "Name"; 
       ddlCountryList.DataValueField = "Code"; 
       ddlCountryList.DataBind(); 

       //Disable any preselected items in dropdown list 
       foreach (var country in countryList) 
       { 
        var disabledCountry = IsCountryDisabled(country.Code); 

        if (country.Id != 0) 
        { 
         ddlCountryList.Items.FindByValue(country.Code).Attributes.Add("disabled", "true"); 
        } 
       } 
関連する問題