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);