2009-08-31 77 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() 

但这禁用所有选项,因为在HTML中禁用的属性,如果有禁用属性,那么它禁止在任何情况下选项不需要值。但我需要一个可以为选项添加禁用属性的解决方案,该选项没有配额,其他应该启用。

你有什么建议吗?

+0

请显示请将您的数据插入DDL的代码。 – 2009-08-31 07:48:20

回答

0

无法在下拉列表中禁用单个项目。见MSDN

或许应用一些验证来通知用户是否选择了无效选项,或者完全从列表中删除这些项目。

+2

您的权利不允许通过asp.net控件,但它允许在HTML中,因此您可以在绑定事件之后轻松完成它,请参阅我的答案。 – TheAlbear 2011-11-15 22:29:13

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"); 
        } 
       } 
相关问题