我需要在列表框中对项目进行分组,类似于html SELECT中的OPTGROUP。
非常感谢任何建议。
答案 0 :(得分:3)
重写Sandeep的回答:
HTML
<select id="mySelect">
<option optGroup='a'>1</option>
<option optGroup='a'>1</option>
<option optGroup='a'>1</option>
<option optGroup='b'>2</option>
<option optGroup='b'>2</option>
</select>
JQuery的
function SetupOptGroups(select) {
var optGroups=new Array();
var i = 0;
$(select).find("[optGroup]").each(function(index, domEle) {
var optGroup = $(this).attr("optGroup");
if ($.inArray(optGroup, optGroups)==-1) optGroups[i++] = optGroup;
});
for(i=0; i < optGroups.length; i++){
$("option[optGroup='"+optGroups[i]+"']").wrapAll("<optgroup label='"+optGroups[i]+"'>");
}
}
答案 1 :(得分:2)
我通过向选项添加属性来完成此要求,属性值将是我想要的Optgroup名称。在客户端,我使用此代码使用optgroups var optGroup = "";
var i = 0;
$(this).find("option").each(function () {
if (optGroup !== "")
optGroup += "," + $(this).attr("OptGroup");
else
optGroup = $(this).attr("OptGroup");
});
var optGroups = $.unique(optGroup.split(","));
for (var optGroupEle in optGroups) {
if ($("optgroup[label='" + optGroups[optGroupEle] + "']").html() == null)
$("option[OptGroup='" + optGroups[optGroupEle] + "']").wrapAll("<optgroup label='" + optGroups[optGroupEle] + "'/>");
}
答案 2 :(得分:0)
您可以添加一个项目并禁用,更改颜色,最终效果是相同的,即
itemVersion.Attributes.Add(&#34;禁用&#34;,&#34; true&#34;) itemVersion.Attributes.Add(&#34; style&#34;,&#34; color:#CCCCCC&#34;) ddlAspectoOrigen.Items.Add(itemVersion)
答案 3 :(得分:0)
您可以使用HTML SELECT control并从代码隐藏中访问列表框中的所有属性。您只需添加标签runat="server"
。