繁体   English   中英

在后面的代码中设置ASP.NET控件的UniqueId

[英]Setting the UniqueId of an ASP.NET control in code behind

我在代码隐藏中有一堆动态创建的复选框,如下所示:

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>

但是我意识到我动态创建的CheckBoxs没有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 =“”,这实际上是行不通的。

您可以设置创建的控件的ID属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM