怎样为Asp.Net的用户控件添加下拉属性

2025-05-18 05:41:25

1、新建一个WebUserControl1.ascx用户控件,为了简单,我们就直接在该控件中放一个DropDownList控件。如果我们不为WebUserControl1.ascx控件添加任何属性,在该控件外是不能够为DropDownList控件添加下拉项的。

2、现在我们为WebUserControl1.ascx控件添加一个Items属性,它直接映射DropDownList的Items属性,属性如下:public ListItemColl髫潋啜缅ection Items{ get { return this.DropDownList1.Items; }}这样,我们在调用该用户控件的aspx页的cs文件中,就可以通过编程的方式为DropDownList控件添加下拉项了,如下:protected void Page_Load(object sender, EventArgs e){ this.WebUserControl11.Items.Add(new ListItem("中国银行", "0"));}但这时我还无法在aspx直接为DropDownList控件添加下拉项的。

3、现在我们为用户控件的Items属性添加一个属性,如下代码:[PersistenceMode(PersistenceMode.InnerDefaultProperty)]public ListItemCollection Items{ get { return this.DropDownList1.Items; }}讲解一下上面代码的意思:PersistenceMode:定义元数据属性 (Attribute),用于指定如何在设计时将 ASP.NET 服务器控件属性 (Property) 或事件保存到 ASP.NET页PersistenceMode.InnerDefaultProperty:指定属性在 ASP.NET 服务器控件中保持为内部文本。还指示将该属性定义为元素的默认属性。只能指定一个属性为默认属性

4、仅仅设置了这个属性,还是不够的,我们还需要为用户控件类添加一个属性:[ParseChildren(true, "Items")]public partial class WebUserControl1 : System.Web.UI.UserControl{}ParseChildren:定义可在开发 ASP.NET 服务器控件时使用的元数据属性。使用 System.Web.UI.ParseChildrenAttribute 类指示页分析器应如何处理页上声明的服务器控件标记中嵌套的内容。好了,设置完这两步,重新编译用户控件,然后再重新打开调用该用户控件的页面,是不是可以在aspx页面直接设置下拉集合项了呢。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢