禁用下拉列表项

Posted

技术标签:

【中文标题】禁用下拉列表项【英文标题】:disable dropdownlist items 【发布时间】:2011-07-14 02:07:54 【问题描述】:

我想禁用下拉列表中的每五个项目。

dropdownlist1.items[i].Attributes.Add("disabled","disabled");

如何编写逻辑来禁用下拉列表中的每五个项目?

我正在使用两个for 循环:一个用于显示项目,一个用于禁用下拉列表中的项目。如何简化我的代码?

【问题讨论】:

for(i=0;I 【参考方案1】:

也许您应该考虑不显示它们? 如:

if (i % 5 > 0) 
   dropdownlist1.items[i].Attributes.Add("disabled","disabled");

【讨论】:

这不会“隐藏”它们,而是将它们变灰并阻止它们被选择——就像 OP 请求的那样。【参考方案2】:
foreach(Control c in this.Controls)
 
    if(c is dropdownlist)
    
        dropdownlist dl = (dropdownlist)c;
        if (i % 5 > 0)
        
           dl.items[i].Attributes.Add("disabled","disabled");
        
    
 

看看这个!和castirng一样。

找出表格上的所有下拉列表,然后 在每个下拉列表中,它将禁用。

告诉我!!

【讨论】:

【参考方案3】:

如果您需要一个 optgroup 功能来对您的选项进行分组。如果您不知道 http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_optgroup,以下是 optgroup 的示例。

有多种方法可以将optgroup 添加到下拉列表http://weblogs.asp.net/jeff/archive/2006/12/27/dropdownlist-with-optgroup.aspx

那么你可以这样使用它

ListItem item = new ListItem("some group name", String.Empty);
item.Attributes["optgroup"] = "optgroup";
myDropDown.Items.Add(item);

或者在你的情况下

dropdownlist1.items[i].Attributes["optgroup"] = "optgroup";

【讨论】:

【参考方案4】:

使用 jQuery

var count = 0;
$('select option').each(function() 
   count++;
   if(count % 5 == 0)
     $(this).attr('disabled', 'disabled'); 
):

【讨论】:

【参考方案5】:

我搜索了“禁用下拉列表项”,the first result 提供了您正在寻找的确切答案。

这是不可能的,但有其他选择。

【讨论】:

在同一个链接上,用户“Henxon”表明它是可能的,在本页上面的答案中使用相同的items[i].Attributes.Add("disabled")。为了看到选项被禁用,您需要将其放入 Page_Load 或将下拉列表放入 AJAX UpdatePanel 的 ContentTemplate 中(如果您正在动态执行此操作) - 但如果您没有使用 UpdatePanel 并且您尝试即时执行,仅仅因为选项没有禁用,并不意味着它不能完成 - 它只是没有正确设置。

以上是关于禁用下拉列表项的主要内容,如果未能解决你的问题,请参考以下文章

根据jquery中的第一个下拉列表禁用下拉列表

获取隐藏下拉列表禁用选定选项的值

根据 python plotly dash 中先前单选项目/下拉列表中的选择禁用下拉列表

禁用 KendoUI 下拉列表选项

如何使用 jquery 禁用 kendo ui 下拉列表?

下拉列表框控制层的显示和隐藏