Web用户控件(WebUserControl)嵌套问题-别忘了注册子用户控件

本文介绍了在Web开发中遇到的一个问题,即在使用嵌套的Web用户控件(WebUserControl)时,由于未注册子用户控件导致的编译错误。通过详细的问题分析,发现当在页面中使用YearMonthSpan控件,其内部包含的YearMonth控件未被正确注册,从而引发错误。解决方案是在页面中添加子控件的注册语句,确保所有嵌套用户控件都被正确引用,以避免运行时错误。总结:在使用嵌套Web用户控件时,务必注意注册所有子控件。
摘要由CSDN通过智能技术生成

问题:

1.创建了一个Web用户控件,YearMonth。 该控件包含两个下拉框,用于选择年月。

该控件有一个方法GetValue(),返回年月的字符串比如"200801"。

2.创建第二个Web用户控件,YearMonthSpan。该控件包含两个YearMonth控件。用于时间段的查询。

该控件有两个属性StartYearMonth,EndYearMonth,返回YearMonth类型的用户控件。就是1中创建的控件类型。

3.在一个aspx页面中拖入一个YearMonthSpan。在页面代码中试图写一下代码:

YearMonthSpan.StartYearMonth.GetValue()出现问题。

事实上,在写到YearMonthSpan.StartYearMonth.的时候,编辑器的智能感知功能并没有列出YearMonth的成员。但是编译却没有报错。运行该页面(在浏览器中打开)出现编译错误信息:

在未被引用的程序集中定义。必须添加对程序集***的引用。

难道是用户控件不支持嵌套吗?其实是因为页面使用用户控件必须先注册,用户代码中使用了YearMonth,但是却没有在页面中注册。只要把控件拖到页面中。查看源文件中,会多出一个注册语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值