Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UpdatePanel中存在具有相同ID的asp.net多个控件问题_C#_Asp.net_Ajax_Jquery_Updatepanel - Fatal编程技术网

C# UpdatePanel中存在具有相同ID的asp.net多个控件问题

C# UpdatePanel中存在具有相同ID的asp.net多个控件问题,c#,asp.net,ajax,jquery,updatepanel,C#,Asp.net,Ajax,Jquery,Updatepanel,我正在做下面的代码 <asp:UpdatePanel runat="server" ID="upContent"> <ContentTemplate> <cube:PlaceHolder ID="phContent" runat="server"> </cube:PlaceHolder> <uc1:ProgressNote runat="serve

我正在做下面的代码

<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”的控件。FindControl要求控件具有唯一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 });
                }
            }
        }
    }
受保护的void onControlEvent(对象发送方,ControlEventArgs e)
{
foreach(此.RegisteredEvents[e.ControlID]中的KeyValuePair父级)
{
if(parent.Key!=this.ClientID)
{
IBaseControl ctrl=(IBaseControl)this.PlaceHolder.FindControl(parent.Key);
if(parent.Value.EventName==e.EventName)
{
ctrl.ControlEvent(发送方,新的EventInfoEventArgs(){EventInfo=parent.Value,e=e.EventArgs});
}
}
}
}

Ctrl将为空

您在页面上绑定了多少ProgressNote?一次!我只是像上面一样拖放控件@DevCan你可以粘贴一些代码你如何查找ProgressNote?@Dev yeh当然可以,请检查上面