Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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# 为什么ajax会更改动态控件的ID?_C#_Asp.net_Ajax_Accordion - Fatal编程技术网

C# 为什么ajax会更改动态控件的ID?

C# 为什么ajax会更改动态控件的ID?,c#,asp.net,ajax,accordion,C#,Asp.net,Ajax,Accordion,我创建了一个手风琴,面板看起来像这样 <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </asp:ToolkitScriptManager> <asp:Accordion ID="Accordion1" runat="server" HeaderCssClass="spitter_" HeaderSelectedCssCl

我创建了一个手风琴,面板看起来像这样

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:Accordion ID="Accordion1" runat="server" HeaderCssClass="spitter_"
            HeaderSelectedCssClass="accordionHeaderSelected"
            ContentCssClass="accordionContent" runat="server"
            SelectedIndex="0" FadeTransitions="false"
             TransitionDuration="250"
            FramesPerSecond="30"
            RequireOpenedPane="false" AutoSize="None">
            <Panes>
                <asp:AccordionPane ID="AccPane1" runat="server">
                    <Header>
                        My header
                    </Header>
                    <Content>
                        <asp:Panel ID="panel1" runat="server"></asp:Panel>
                    </Content>
                </asp:AccordionPane>
其中i是循环中的一个值。 我的ID不是check_box1或check_box2,而是AccordianPane_check_box1

这里是我开始选择复选框的地方

     for (int i = 0; i < depts.Count; i++)
        {
            TableRow row = new TableRow();
            TableCell dept_ = new TableCell();
            TableCell check_row = new TableCell();
            row.ID = "row_" + i.ToString();
            CheckBox mark_row = new CheckBox();
            mark_row.ID = "check_box" + i.ToString();                
            check_row.Controls.Add(mark_row);              

            row.Cells.Add(check_row);
            row.Cells.Add(dept_);
            table.Rows.Add(row);
        }
panel1.Controls.Add(table);

这方面的任何帮助都会很好。

这就是webforms的工作方式。我理解这一点。我关心的是,我为控件指定了一个ID。而那个身份证被改变了。如果元素的更改超出了我的意愿,为什么我要指定元素的ID。请将ClientIDMode设置为Static。检查这个谢谢malkam。您可以将其作为答案发布,以便我对其进行标记吗?ID会被更改,因为,例如,可能有一个嵌套的用户控件,其中的元素具有相同的ID。如果您从未遇到这种情况,静态ClientMode是一个很好的解决方案。
     for (int i = 0; i < depts.Count; i++)
        {
            TableRow row = new TableRow();
            TableCell dept_ = new TableCell();
            TableCell check_row = new TableCell();
            row.ID = "row_" + i.ToString();
            CheckBox mark_row = new CheckBox();
            mark_row.ID = "check_box" + i.ToString();                
            check_row.Controls.Add(mark_row);              

            row.Cells.Add(check_row);
            row.Cells.Add(dept_);
            table.Rows.Add(row);
        }
panel1.Controls.Add(table);