次のように、コードビハインドに動的に作成されたチェックボックスがたくさんあります。
CheckBox[] checks = new CheckBox[n];
ここで、n は実行時に計算される整数です。これらのチェックボックスをすべてグリッドに追加したので、ASP.NET Web ページにすべて表示されますが、これらすべてをトリガーとして更新パネルに追加したいと考えています。したがって、コード ビハインドでこれを行う必要があります。
<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);
}
しかし、デバッガーでは、checks[i].UniqueID = "" が表示されますが、これは実際には機能しません。