禁用下拉列表项
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 并且您尝试即时执行,仅仅因为选项没有禁用,并不意味着它不能完成 - 它只是没有正确设置。以上是关于禁用下拉列表项的主要内容,如果未能解决你的问题,请参考以下文章