我的程序的结构类似于微软出的那套论坛,先创建一个基类,继承自WebControl, INamingContainer
然后在类里面加入
protected override void CreateChildControls()
{
//初始化所有继承自这个类的每个自定义控件中Load进来的用户控件
InitializeSkin(Skin);
}
protected abstract void InitializeSkin(Control Skin);
在继承自上面这个类的子类中
protected override void InitializeSkin(Control Skin)
{
//这个里面我加入控件,并想取得该控件生成到最终页上的ID,应该是UniqueID这个属性,但在这里却取不到,取到的结果是它的Id,我该怎么做能取到它的UniqueID呢?
RadioButtonList rblIcon;
rblIcon = (RadioButtonList)Skin.FindControl("rblIcon");
Page.Response.Write(rblIcon.UniqueID);
}
解决办法:很简单,但一直没想到
在继承自上面这个类的子类中
protected override void InitializeSkin(Control Skin)
{
RadioButtonList rblIcon;
rblIcon = (RadioButtonList)Skin.FindControl("rblIcon");
rblIcon.Load += new EventHandler(rblIcon_Load);
}
private void rblIcon_Load(object sender, EventArgs e)
{
//在这里就可以得到了,呵呵
Page.Response.Write(rblIcon.UniqueID);
}