(c#)
一个添加分类的功能时,为选择分类,编写了包含DropDownList控件(id为ClassTree) 的用户控件,如
ClassTree.Items.FindByText("一级频道").Attributes.Add("level", level.ToString());
的方法 为每个选项添加了一个自定义属性level,在使用这个用户控件的页面中需要得到被选中选项的level属性的值。
先试用了 this.ClassTree.SelectedItem.Attributes["level"]
返回了空值。因此,到网上去寻找解决方法,CSND有篇文字中有人说这是个BUG,也不知然否,但确实不好找到控件自身可以解决方法。于是结合网上的其他资料用下面的方法解决。
第一步:在用户控件中添加
<input type="hidden" id="hiddenValue" value="1" runat="server" />
第二步:在用户控件代码Page_Load中用添加
ClassTree.Attributes.Add("onchange", "" + this.hiddenValue.ClientID + ".value=this.options[this.selectedIndex].level");
第三步:添加公共属性方法
public int level
{
get
{
return int.Parse(this.myHidden.Value.ToString());
}
}
这样,就可以在使用用户控件(id为classtreemodule1)的页面中使用下面的方法获取DDL选取的选项自定义的level值了。
classtreemodule1.level
这是我的方法,不晓得还有更好的没。