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

 时间:2026-02-14 09:25:35

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

2、现在我们为WebUserControl1.ascx控件添加一个Items属性,它直接映射DropDownList的Items属性,属性如下:

public ListItemCollection 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页面直接设置下拉集合项了呢。

  • 怎么配置wamp下mysql的编码
  • Eclipse导入项目出现错误第一件要做的事
  • oracle12c如何为PDB创建表空间
  • IntelliJ IDEA中favorites收藏窗口怎么删除分类
  • 详细介绍linux环境下如何用rpm 安装jdk
  • 热门搜索
    凯伊秀护肤品怎么样 生活很累的经典句子 ms是什么意思 大学生生活 安子齐的古代生活 ui设计是什么 如何治疗面部痤疮 hpv阳性是什么意思 惠存是什么意思 鱼虫怎么养