c# - 在 asp.net 中,未触发更新面板内的按钮

标签 c# asp.net ajax asp.net-ajax ajaxcontroltoolkit

<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 的子元素触发的任何回发更新其内容。

编辑:刚刚意识到 btn_Add 是一个嵌套控件,因此您必须将其显式调用为 UpdatePanel 触发器。在 ContentTemplate 之后将以下内容添加到您的 UpdatePanel 标记中:

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btn_Add" /> 
</Triggers>

编辑 #2:为了防止您的模态弹出窗口在发生异步回发时关闭,请将 UpdatePanel 移动到由 ModalPopupExtender 的 PopupControlID 指定的面板内:

<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>

关于c# - 在 asp.net 中,未触发更新面板内的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650592/

相关文章:

c# - 通用参数推断和不明确的函数调用 - 有解决方法吗?

c# - 如何在给定 Dictionary<TKey,TValue> 类型的情况下获取 TKey 和 TValue 的类型

c# - 如何设置 Web.Config 转换以满足本地和生产配置?

c# - 如何获取当前 EF 版本

c# - OnClientClick 代码阻止验证工作

javascript - 将 FilePathResult ASP.net MVC 发送的 http 响应中的二进制图像数据转换为 base64 字符串

php - 对 php 文件进行 AJAX 调用 --> 然后退出浏览器 --> php 文件是否仍会完全运行?

asp.net - Membership、SimpleMembership、ASP.NET Identity 之间有什么区别?

ajax - 从 Ajax 表单加载的 MVC4 WebGrid - 排序和分页时多次调用 Controller

javascript - ajax 调用在 IE11 和 chrome 中无法正常工作