ModalPopup не работает на странице содержимого главной страницы

#asp.net-ajax

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

Как правило, вы должны поместить ScriptManager на свою главную страницу. Затем поместите ScriptManagerProxy или ToolkitManagerProxy на вашу страницу aspx. Также, если вы работаете с .Net 4.0, вам может потребоваться указать AjaxFrameworkMode=»Включено»

Вам не понадобится панель обновления для этого теста hello world.

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>