【发布时间】:2013-02-07 02:14:20
【问题描述】:
为了更清楚的解释,这是我在.asp 文件上的代码:
<asp:UpdatePanel ID="updPnlTabs" runat="server" >
<Triggers>
<asp:PostBackTrigger ControlID="btnSave" />
</Triggers>
<ContentTemplate>
<asp:Panel ID="pnlCheckList" runat="server" style="margin-bottom: 10px;" CssClass="listingDummyTab">
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
在我的.cs 代码中,我动态地为 pnlCheckList 创建了复选框,如下所示:
CheckBox chkModuleID = new CheckBox();
chkModuleID.ID = drNew[def.ID].ToString();
chkModuleID.AutoPostBack = true;
chkModuleID.CheckedChanged += new EventHandler(chkID_OnRow_Check);
pnlCheckList.Controls.Add(chkModuleID);
现在我的问题是,当我更改复选框时,整个页面必须加载,而不是 UpdatePanel 的内容。请注意,动态创建的复选框的 EventHandler 正在触发,但不在 UpdatePanel 内。
如何在UpdatePanel 的<Triggers> 中添加动态创建的Controls 的ID?
【问题讨论】:
-
我已经尝试声明
AsyncPostBackTrigger对象,然后我为其分配了ControlID,但是当我将它添加到UpdatePanel时,重新加载或回发时出现问题。我创建的对象被再次添加。 -
你读过答案[这里]:(stackoverflow.com/questions/2715623/…)