我的问题是 当我想使用带参数的UserControl时。
它调用构造函数(没有参数的构造函数和带参数的constroctor)
这是正常情况吗?
如果没有,我该如何构造对象。
public partial class FreeExperience : Arche.Web.UI.UserControlBase
{
private ItemInfo itemInfo;
public FreeExperience() : base()
{
}
public FreeExperience(ItemInfo itemInfo) : this()
{
this.itemInfo = itemInfo;
}
这里我做了简单的userControl,
并在另一页上将其称为这样。
<%@ Register TagPrefix="uc" TagName="FreeExperience" Src="include/FreeExperience.ascx" %>
...
<uc:FreeExperience ID="ucFreeExperience" runat="server"/>
并在此网页的CS的Page_load
功能
ucFreeExperience = new Arche.Itempage3.include.FreeExperience(itemInfo);
答案 0 :(得分:9)
不要在用户控件上使用构造函数。
使用get / set访问器公开属性。
答案 1 :(得分:1)
public FreeExperience(ItemInfo itemInfo) : this()
:this()调用默认构造函数,如果没有具体原因,可以将其删除。
实际上,我总是以相反的方式运行,并且具有很少或没有参数的构造函数,调用参数化构造函数,提供默认值。