- ani
- 常連さん
- 会議室デビュー日: 2007/05/17
- 投稿数: 44
|
投稿日時: 2007-05-17 17:37
始めまして。いつも勉強させていただいています。
ASP.NET AJAXのUpdatePanelコントロールを使用した処理を書いているのですが、うまくいきません。
具体的には、マスターページとコンテンツページが存在するWebサイトで
マスターページにScriptManagerコントロールを配置し、
コンテンツページにScriptManagerProxyコントロールとUpdatePanelコントロールを配置しているのですが、
ページ表示の際に以下のようなエラーが表示されてしまいます。
引用: |
| エラーメッセージ:
System.InvalidOperationException: The control with ID 'UpdatePanel' requires a ScriptManager on the page.
The ScriptManager must appear before any controls that need it.
|
ScriptManagerがないというようなエラーだと思うのですが、配置の方法が悪いのでしょうか?
|
- chack
- 常連さん
- 会議室デビュー日: 2002/11/18
- 投稿数: 48
- お住まい・勤務地: 埼玉県
|
投稿日時: 2007-05-17 21:25
マスターページに ScriptManager コントロール
コンテンツページに ScriptManagerProxy コントロール
で、問題ないはずですけど。
私の環境では、問題なく動いてます。
.master と .aspx のコードを提示できますか?
|
- BT
- ベテラン
- 会議室デビュー日: 2006/09/24
- 投稿数: 81
- お住まい・勤務地: Tokyo
|
投稿日時: 2007-05-17 21:53
これって、実行時じゃなくてデザイン時に表示されるエラーじゃないですか?
私も同様のケースでデザイン時に表示される場合があるのですが、実行時は特にエラーも出ないので、何だろうなと思いつつもとりあえず目をつぶっています。
解決方法があるのなら知りたいですけど。
|
- ani
- 常連さん
- 会議室デビュー日: 2007/05/17
- 投稿数: 44
|
投稿日時: 2007-05-18 09:54
chackさん、返信ありがとうございます。
コードは以下の通りです。
<.master>
コード: |
|
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage_MasterPage" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Master Page</title>
<link href="../App_Themes/SystemMenu.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
...省略
<asp:contentplaceholder id="PageContentPlaceHolder" runat="server">
</asp:contentplaceholder>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
...省略
</form>
</body>
</html>
|
<.aspx>
コード: |
|
<%@ Page Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="test" %>
<%@ OutputCache Location="None" VaryByParam="None" %>
<%@ MasterType VirtualPath="~/MasterPage/MasterPage.master" %>
<asp:Content ID="PageContent" ContentPlaceHolderID="PageContentPlaceHolder" Runat="Server">
...省略
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
</asp:ScriptManagerProxy>
<asp:LinkButton ID="LinkButton1" runat="server">C言語</asp:LinkButton><br />
<asp:Panel ID="Panel1" runat="server" BackColor="#FFFF80" Height="50px" Width="125px">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:LinkButton ID="LinkButton2" runat="server">名前の変更</asp:LinkButton><br />
<asp:LinkButton ID="LinkButton3" runat="server">削除</asp:LinkButton><br />
<asp:LinkButton ID="LinkButton4" runat="server">分類追加</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<ajaxToolkit:PopupControlExtender ID="PopupControlExtender1" runat="server" PopupControlID="Panel1"
Position="Bottom" TargetControlID="LinkButton1">
</ajaxToolkit:PopupControlExtender>
...省略
</asp:Content>
|
何かわかりましたらご教示下さい。
|
- ani
- 常連さん
- 会議室デビュー日: 2007/05/17
- 投稿数: 44
|
投稿日時: 2007-05-18 10:01
BTさん、返信ありがとうございます。
説明不足で申し訳ありません。
私の場合は実行時にエラーが表示されます。逆にデザイン時にはエラーとなりません。
ネット検索をかけてみると、デザイン時にエラーとなるという記述はあったので、
私の場合は根本的に間違っているのかと思っています。
ちなみに環境を記載していませんでしたが、以下になります。
Windows XP(SP2), VS2005(SP1), .NET Framework 2.0, ASP.NET Ajax 1.0
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2007-05-18 10:07
引用: |
|
aniさんの書き込み (2007-05-18 09:54) より:
<.master>
コード: |
|
<asp:contentplaceholder id="PageContentPlaceHolder" runat="server">
</asp:contentplaceholder>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
|
|
これ ContentPlaceHolder の前に ScriptManager を移動したらどうなります?
コード: |
|
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:contentplaceholder id="PageContentPlaceHolder" runat="server">
</asp:contentplaceholder>
|
_________________ かるあ のメモ と スニペット
|
- ani
- 常連さん
- 会議室デビュー日: 2007/05/17
- 投稿数: 44
|
投稿日時: 2007-05-18 10:20
かるあさん、返信ありがとうございます。
引用: |
|
かるあさんの書き込み (2007-05-18 10:07) より:
これ ContentPlaceHolder の前に ScriptManager を移動したらどうなります?
コード: |
|
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:contentplaceholder id="PageContentPlaceHolder" runat="server">
</asp:contentplaceholder>
|
|
教えていただいた通り、ScriptManagerを前に移動したらできました!
なるほど〜。処理される順番に問題があったわけですね。
ありがとうございました。
|