1
我正在使用Render方法被覆盖的自定义Web控件。覆盖渲染方法时的客户端ID
我的问题是,呈现的控件的ID不包括控件所在的母版页和用户控件的ID。
也就是说,如果我的渲染方法包括以下内容:
writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID);
writer.RenderBeginTag(HtmlTextWriterTag.Div);
writer.RenderEndTag();
而且它的使用方法如下:
<somePrefix:MyWebControl ID="WebControl1" runat="server" />
然后控制将呈现为:
<div id="WebControl1"></div>
虽然我想要的东西是这样的:
<div id="ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolderMain_WebControl1"></div>
(这是,如果我提出了一个DIV ID为WebControl1和RUNAT =“服务器”是什么,就可以产生)
我能做些什么来实现呢?
编辑
我错了,当这种情况发生有关。当我直接在页面中放置控件时,id很好(asp.net生成的id)。
但是,当从另一个Web控件呈现MyControl时出现问题,该控件包含我的控件集合。
在容器控制RenderControl方法重写如下:
foreach (Control control in MyControls)
{
divControls.Controls.Add(control);
}
divControls.RenderControl(writer)