如何使用MasterPage在其他.aspx页面中使用另一个/多个ScriptManager? [英] How to use another/multiple ScriptManager in other .aspx page using MasterPage?

查看:82
本文介绍了如何使用MasterPage在其他.aspx页面中使用另一个/多个ScriptManager?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

How to use another/multiple ScriptManager in other page using MasterPage which MasterPage has a ScriptManager?

Design Page (MasterPage.master):
here, I use a ScriptManager, Panel (black colored) and a button. And also use Ajax ModalPopupExtender1.

Source Code (MasterPage):

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<%@ Register Assembly ="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="pm" %>

<!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>Untitled Page</title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
<style type="text/css">
.style1
{
width: 100%;
}
.style2
{
width: 100%;
border: 1px solid #800000;
background-color: #808080;
}
.bgcolor
{
background-color:Silver;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table class="style1">
<tr>
<td>
 </td>
<td>
<asp:Button ID="Button1" runat="server" Text="Details"

onclick="Button1_Click" />
</td>
<td>
 </td>
<td>
 </td>
</tr>
<tr>
<td>
 </td>
<td>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>
</td>
<td>
 </td>
<td>
 </td>
</tr>
<tr>
<td>
 </td>
<td>
<pm:ModalPopupExtender id="ModalPopupExtender1" BackgroundCssClass="bgcolor" TargetControlID="Button8" PopupControlID="Panel1" runat="server" >
</pm:ModalPopupExtender>
<asp:Button ID="Button8" runat="server" Text="Log In" style="display:none" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Panel ID="Panel1" runat="server" Width="500px">
<table class="style2">
<tr>
<td>
 </td>
<td>
 </td>
<td>
 </td>
</tr>
<tr>
<td>
Name</td>
<td>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</td>
<td>
 </td>
</tr>
<tr>
<td>
Job</td>
<td>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</td>
<td>
 </td>
</tr>
</table>
</asp:Panel>
</td>
<td>
 </td>
<td>
 </td>
</tr>
</table>
</div>
</form>
</body>
</html>

Code View(MasterPage):
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
ModalPopupExtender1.Show();
}
}

Design Part (Default3.aspx)
here I use a UpdatePanel. Does not use any extra ScriptManager.

Source View (Default3.aspx)

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

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table class="style1">
<tr>
<td>
 </td>
<td>
 </td>
<td>
 </td>
<td>
 </td>
<td>
 </td>
</tr>
<tr>
<td>
 </td>
<td colspan="2">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<br />
<table class="style1">
<tr>
<td>
<asp:Button ID="Button9" runat="server" onclick="Button9_Click" Text="Button" />
<asp:ScriptManager ID="ScriptManager2" runat="server">
</asp:ScriptManager>
</td>
<td>
 </td>
</tr>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</td>
<td>
 </td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</td>
<td>
 </td>
<td>
 </td>
</tr>
<tr>
<td>
 </td>
<td>
 </td>
<td>
 </td>
<td>
 </td>
<td>
 </td>
</tr>
<tr>
<td>
 </td>
<td>
 </td>
<td>
 </td>
<td>
 </td>
<td>
 </td>
</tr>
</table>
</asp:Content>

Code View (Default3.aspx.cs)
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button9_Click(object sender, EventArgs e)
{
Label1.Text = "Hello";
}
}

Run (Show Error):
"The COntrol with ID 'UpdatePanel1' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it."

Then I add a ScriptManager on Default3.aspx page within UpdatePanel1.

Then Again Run Default3.aspx:

Error: Only one instance of a ScriptManager can be added to the page..


This is the Problem...................

Please solve this problem whereas I use multiple ScriptManager in another page using MasterPage (where already use ScriptManager).

推荐答案

You only need one ScriptManager tag. Do not place it so low in your page. The best position for it is right after the opening for tag in your Master Page.



You only need one ScriptManager tag. Do not place it so low in your page. The best position for it is right after the opening for tag in your Master Page.

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" EnableScriptGlobalization="true"

        EnableScriptLocalization="true">
    </asp:ScriptManager>
    </form>


这篇关于如何使用MasterPage在其他.aspx页面中使用另一个/多个ScriptManager?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆