ModalPopup无法在母版页的内容页面中工作

时间:2011-04-22 11:13:05

标签: asp.net-ajax

这是我的内容页面

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
    CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link type="text/css" rel="Stylesheet" href="StyleSheet.css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:ScriptManager ID="script1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:Panel ID="pnl1" runat="server" Height="200" Width="200" CssClass="modalPopup">
                <h1>
                    Hello World
                </h1>
            </asp:Panel>
            <asp:Button ID="btnShow" runat="server" Text="Show" />
            <cc1:ModalPopupExtender ID="mpEditComment" runat="server" PopupControlID="pnl1" TargetControlID="btnShow"
                BackgroundCssClass="modalBackground">
            </cc1:ModalPopupExtender>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

这是我的主页

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!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>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>
    </form>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

通常,您应该将ScriptManager放在主页面中。然后在您的aspx页面中放置ScriptManagerProxy或ToolkitManagerProxy。此外,如果您正在使用.Net 4.0,那么您可能需要指定AjaxFrameworkMode =“Enabled”

此hello world测试不需要UpdatePanel。

<强> MasterPage.master

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!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 id="Head1" runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" AjaxFrameworkMode="Enabled" runat="server"></asp:ScriptManager>
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>
    </form>
</body>
</html>

<强> Default.aspx的

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<asp:content id="Content1" contentplaceholderid="head" runat="Server">
    <link type="text/css" rel="Stylesheet" href="StyleSheet.css" />
</asp:content>
<asp:content id="Content2" contentplaceholderid="ContentPlaceHolder1" runat="Server">
    <asp:ScriptManagerProxy ID="ScriptManagerProxy1"runat="server"></asp:ScriptManagerProxy>

    <asp:Panel ID="pnl1" runat="server" Height="200" Width="200" CssClass="modalPopup">
        <h1>
            Hello World
        </h1>
        <asp:Button runat="server" Text="ButtonOk"></asp:Button>
        <asp:Button runat="server" Text="ButtonCancel"></asp:Button>
    </asp:Panel>

    <asp:Button ID="btnShow" runat="server" Text="Show" />

    <cc1:ModalPopupExtender ID="mpEditComment" 
        PopupControlID="pnl1" 
        TargetControlID="btnShow"
        OkControlID="ButtonOk"
        CancelControlID="ButtonCancel"
        BackgroundCssClass="modalBackground"
        runat="server"  />

</asp:content>