【问题标题】:How to do a postback after exit ModalPopupExtender with an UpdatePanel如何在使用 UpdatePanel 退出 ModalPopupExtender 后进行回发
【发布时间】:2010-07-08 09:26:08
【问题描述】:

我在页面上有一个按钮。此按钮打开一个 ModalPopupExtender。在此弹出窗口中,有一个 UpdatePanel 用于在隐藏弹出窗口之前显示错误。但是当我单击按钮确定并且弹出窗口中没有错误时,我想更新主页中的标签(lblInfo)的信息。我该怎么做?

谢谢。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TestModalPopupExtender.WebForm1" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .pvPanel
        {
            width: 630px;
            margin: 0px;
            padding: 0px;
            font-family: Arial, Helvetica, sans-serif;
            font-size: small;
        }
        .modalBox
        {
            background-color: #ffffff;
            border: 2px Solid #707070;
            padding: 8px 5px 8px 5px;
            font-family: Arial, Helvetica, sans-serif;
            font-size: small;
        }
        .modalBackground
        {
            background-color: #b0b0b0;
            filter: alpha(opacity=70);
            opacity: 0.7px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ajax:ToolkitScriptManager ID="ScriptManager1" runat="server">
        </ajax:ToolkitScriptManager>
        <br />
        <br />
        <asp:Button ID="btnOpen" runat="server" Text="Open popup" />
        <br />
        <br />
        <asp:Label ID="lblInfo" runat="server" Text=""></asp:Label>
        <%-- Popup --%>
        <asp:Panel ID="Panel1" runat="server" CssClass="modalBox">
            <br />
            <br />
            <asp:CheckBox ID="chkState" runat="server" Text="Get an error!" />
            <br />
            <br />
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btnOk" />
                </Triggers>
                <ContentTemplate>
                    <asp:Label ID="lblError" runat="server" Text=""></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <br />
            <br />
            <br />
            <asp:Button ID="btnOk" runat="server" Text="Ok" OnClick="btnOk_Click" />
            <br />
            <br />
        </asp:Panel>
        <ajax:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnOpen"
            PopupControlID="Panel1" BackgroundCssClass="modalBackground">
        </ajax:ModalPopupExtender>
    </div>
    </form>
</body>
</html>

    protected void btnOk_Click(object sender, EventArgs e)
    {
        if (chkState.Checked)
        {
            lblError.Text = "Error! Try again.";
            return;
        }

        ModalPopupExtender1.Hide();
        lblInfo.Text = "The label is now updated!";
    }

【问题讨论】:

    标签: asp.net ajax updatepanel modalpopupextender


    【解决方案1】:

    将 lblInfo 放在另一个更新面板中,我们称之为 UpdatePanel2。

    然后在设置新的 lblInfo 的文本后调用 UpdatePanel2.update()。

    【讨论】:

    • 我想对所有页面进行回发,但最终您的解决方案对我来说更好。谢谢。
    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多