我在代码隐藏中有一堆动态创建的复选框,如下所示:
CheckBox[] checks = new CheckBox[n];
其中n是在运行时计算的整数。我已将所有这些复选框添加到网格中,因此它们在我的ASP.NET网页中都可见,但现在我想将它们全部添加为更新面板的触发器。因此,我需要在代码隐藏中执行此操作:
<asp:UpdatePanel id="upPanel" runat="server">
<ContentTemplate>
// ...Contents of UpdatePanel...
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID=[Insert CheckBox Unique ID here] EventName="Click" />
//... n AsyncPostBackTriggers, one for each CheckBox ...
<asp:AsyncPostBackTrigger ControlID=[Insert CheckBox Unique ID here] EventName="Click" />
</Triggers>
</asp:UpdatePanel>
但我意识到我动态创建的CheckBox没有UniqueID,所以我无法设置AsyncPostBackTrigger的ControlID。有没有办法在代码隐藏中设置ASP.NET控件的唯一ID?
到目前为止我试过这个:
for (int i=0; i<n; i++)
{
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = checks[i].UniqueID;
trigger.EventName = "Click";
upPanel.Triggers.Add(trigger);
}
但是在调试器中,我看到检查[i] .UniqueID =“”,这实际上并不起作用。
答案 0 :(得分:1)
您可以设置创建的控件的ID
属性。