我正在按照以下代码执行
<asp:UpdatePanel runat="server" ID="upContent">
<ContentTemplate>
<cube:PlaceHolder ID="phContent" runat="server">
</cube:PlaceHolder>
<uc1:ProgressNote runat="server" ID="ProgressNote" />
</ContentTemplate>
</asp:UpdatePanel>
现在的问题是,当我在页面中为ProgressNote调用findcontrol时因为ProgressNote在面板外而找不到,因为findcontrol覆盖方法在“phContent”面板中找到该控件。为此,我将ProgressNote控件放在面板中,如下所示
<asp:UpdatePanel runat="server" ID="upContent">
<ContentTemplate>
<cube:PlaceHolder ID="phContent" runat="server">
<uc1:ProgressNote runat="server" ID="ProgressNote" />
</cube:PlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
现在这次我有异常“找到了具有相同ID'ProgressNote'的多个控件.ViewControl要求控件具有唯一ID”,但代码中没有相同的ID。在我做错的地方,请帮助我。提前致谢 这就是我找到控制权的方式:
protected void onControlEvent(object sender, ControlEventArgs e)
{
foreach (KeyValuePair<string, EventInfo> parent in this.RegisteredEvents[e.ControlID])
{
if (parent.Key != this.ClientID)
{
IBaseControl ctrl = (IBaseControl)this.PlaceHolder.FindControl(parent.Key);
if (parent.Value.EventName == e.EventName)
{
ctrl.ControlEvent(sender, new EventInfoEventArgs() { EventInfo = parent.Value, e = e.EventArgs });
}
}
}
}
Ctrl将为null