<asp:ModalPopupExtender ID="MPE_EditGroup" runat="server" TargetControlID="btnShowPopup" PopupControlID="pnlpopup" CancelControlID="btnCancel" /> <asp:ToolkitScriptManager ID="ScriptManager1" runat="server" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> <ContentTemplate> <asp:Panel ID="pnlpopup" runat="server"> <asp:ListBox ID="lst_allmembers" DataValueField="FirstName" runat="server" /> <asp:Button ID="btn_Add" runat="server" Text="Add" OnClick="btn_Add_Click" /><asp:ListBox ID="lst_grpmembers" runat="server" /> <asp:Button ID="btn_remove" runat="server" Text="Remove" /> <asp:Button ID="btnUpdate" CommandName="Update" runat="server" Text="Update" OnClick="btnUpdate_Click" /> <asp:Button ID="btnCancel" runat="server" Text="Cancel" /></asp:Panel> </ContentTemplate> </asp:UpdatePanel>
添加按钮具有事件OnClick =“ btn_Add_Click”
protected void btn_Add_Click(object sender, EventArgs e) { lst_grpmembers.Items.Add(lst_allmembers.SelectedItem.Text); }
该事件未触发,当我单击添加按钮时,没有任何反应。而且,在我添加更新面板之前,“更新按钮”工作正常,现在只有“取消”按钮关闭了弹出窗口,而其他按钮在弹出窗口内无法正常工作如何触发事件。
将UpdatePanel的ChildrenAsTriggers属性更改为true。这将导致由UpdatePanel的子元素触发的任何回发更新其内容。
ChildrenAsTriggers
true
编辑 :刚刚意识到这btn_Add是一个嵌套的控件,所以您将必须明确地将其称为UpdatePanel Trigger。在ContentTemplate之后,将以下内容添加到您的UpdatePanel标记中:
btn_Add
UpdatePanel Trigger
<Triggers> <asp:AsyncPostBackTrigger ControlID="btn_Add" /> </Triggers>
编辑#2 :要防止发生异步回发时关闭模态弹出窗口,请在UpdatePanelModalPopupExtender的PopupControlID指定的面板内部移动:
UpdatePanel
<asp:Panel ID="pnlpopup" runat="server"> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> <ContentTemplate> <asp:ListBox ID="lst_allmembers" DataValueField="FirstName" runat="server" /> <asp:Button ID="btn_Add" runat="server" Text="Add" OnClick="btn_Add_Click" /> <asp:ListBox ID="lst_grpmembers" runat="server" /> <asp:Button ID="btn_remove" runat="server" Text="Remove" /> <asp:Button ID="btnUpdate" CommandName="Update" runat="server" Text="Update" OnClick="btnUpdate_Click" /> <asp:Button ID="btnCancel" runat="server" Text="Cancel" /> </ContentTemplate> </asp:UpdatePanel> </asp:Panel>