在AjaxToolkit的 ModalPopupExtender上显示消息时出现问题
当我在ajaxToolkit:ModalPopupExtender内部显示消息时,消息关闭后,ajaxToolkit:ModalPopupExtender会关闭。
如何在显示ajaxToolkit:ModalPopupExtender的同时仍然显示消息,并且消息关闭时不让ajaxToolkit:ModalPopupExtender关闭?
标记:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Tests</title>
<link href="../Style_Sheet/Stylesheet1.css" rel="stylesheet" type="text/css" />
<style>
</style>
<script>
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div>
<asp:Label ID="lbModal_Response_Display" runat="server" Text=""></asp:Label>
<!-- ModalPopupExtender Panel Like Browser -->
<asp:Button ID="btnMPE_Example_Panel_Like_Browser" runat="server" Text="Display Panel Like Browser In A Modal Popup Extender" />
<!-- Modal Popup Panel -->
<asp:Panel ID="pnlMPE_Example_Panel_Like_Browser" style="border: 2px solid #ccc; width: 780px; height:950px;" runat="server" BackColor="#666666">
<!-- Title Bar & Controls -->
<asp:Panel ID="pnlMPE_Example_Panel_Like_Browser_Header" runat="server" >
<div >
</div>
</asp:Panel>
<!-- Main Content -->
<asp:Panel ID="pnlMPE_Example_Panel_Like_Browser_Content" runat="server" style="height:945px;" BackColor="White">
<h3>We are restricted to the Browser Height/Width</h3>
<p>This panel acts as an inner browser window.</p>
<asp:Label ID="lbMPE_Example_Panel_Like_Browser_Saved" runat="server" Text=""></asp:Label>
<asp:Button ID="btnMPE_Example_Panel_Like_Browser_Close" runat="server" Text="Close" onclick="btnMPE_Example_Panel_Like_Browser_Close_Click" CausesValidation = "false"/>
<asp:Button ID="btnMPE_Example_Panel_Like_Browser_Message" runat="server" Text="Message" CausesValidation="false" onclick="btnMPE_Example_Panel_Like_Browser_Message_Click"/>
</asp:Panel>
</asp:Panel>
<!-- ModalPopupExtender Control -->
<ajaxToolkit:ModalPopupExtender ID="MPE_Example_Panel_Like_Browser" runat="server"
TargetControlID="btnMPE_Example_Panel_Like_Browser"
PopupControlID="pnlMPE_Example_Panel_Like_Browser"
BackgroundCssClass="modalBackground"
BehaviorID="mpe_bhid2">
</ajaxToolkit:ModalPopupExtender>
<!-- ModalPopupExtender_Panel Like Browser -->
</form>
</body>
</html>
后台代码:
using AjaxControlToolkit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
#region Modal Popup Example Panel Like Browser.
protected void btnMPE_Example_Panel_Like_Browser_Close_Click(object sender, EventArgs e)
{
// DONT SET THE CANCELCONTROLID on the ModalPopupExtender
// Set the CausesValidation = false on btnModal_Popup_No
// for this event to be fired
MPE_Example_Panel_Like_Browser.Hide();
lbModal_Response_Display.Text = "Modal Popup Example Panel Like Browser - Close";
}
#endregion Modal Popup Example Panel Like Browser.
protected void btnMPE_Example_Panel_Like_Browser_Message_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('Message')</script>");
}
}
}
解决方案
我在面板上有一个按钮,点击后会显示一条消息。当点击消息时,消息和ModalPopupExtender都会关闭。如何阻止ModalPopupExtender关闭?
我理解上文中的“按钮”指的是 <asp:Button ID="btnMPE_Example_Panel_Like_Browser_Message" ... />,而“消息”指的是弹出消息对话框中的确定按钮(OK)
你需要按如下方式以编程方式显示ModalPopup:
protected void btnMPE_Example_Panel_Like_Browser_Message_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('Message')</script>");
pnlMPE_Example_Panel_Like_Browser.Show();
}
请注意,点击ASP.NET Web Forms的 Button控件会触发回发(postback)并提交表单。因此,浏览器向服务器发送请求,服务器返回响应,浏览器使用服务器返回的响应重新绘制页面,除非你再次显示它,否则该页面上不会显示ModalPopup。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。