web-dev-qa-db-ja.com

ScriptManagerは、それを必要とするコントロールの前に表示される必要があります

新しいASP.NET Webアプリケーションを作成しましたが、デバッグ後にサーバーエラーが発生しました

ID 'WaitingPopup1'のコントロールには、ページにScriptManagerが必要です。 ScriptManagerは、それを必要とするコントロールの前に表示する必要があります。

私はASP.NETを初めて使用するので、web.configのどこにScriptManagerをインストールする必要がありますか?

24
H79

ScriptManagerは、作成したページに追加する必要があるコントロールです。

これを見てください サンプルAJAXアプリケーション

<body>
    <form runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        ...
    </form>
</body>
60
AMember

ページでMicrosoft ajaxを使用している場合、マスターページまたはそれを必要とするページに スクリプトマネージャーコントロール を追加する必要があります。 ASP.NET Ajaxスクリプトライブラリとスクリプトファイル、部分ページレンダリング、およびWebサービスとアプリケーションサービスのクライアントプロキシクラスの生成を管理します。

<asp:ScriptManager ID="ScriptManger1" runat="Server">
</asp:ScriptManager>

フル使用

<asp:ScriptManager
    AllowCustomErrorsRedirect="True|False"
    AsyncPostBackErrorMessage="string"
    AsyncPostBackTimeout="integer"
    AuthenticationService-Path="uri"
    EnablePageMethods="True|False"
    EnablePartialRendering="True|False"
    EnableScriptGlobalization="True|False"
    EnableScriptLocalization="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    LoadScriptsBeforeUI="True|False"
    OnAsyncPostBackError="AsyncPostBackError event handler"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnResolveScriptReference="ResolveScriptReference event handler"
    OnUnload="Unload event handler"
    ProfileService-LoadProperties="string"
    ProfileService-Path="uri"
    RoleService-LoadRoles="True|False"
    RoleService-Path="uri"
    runat="server"
    ScriptMode="Auto|Inherit|Debug|Release"
    ScriptPath="string"
    SkinID="string"
    SupportsPartialRendering="True|False"
    Visible="True|False">
        <AuthenticationService
            Path="uri" />
        <ProfileService
            LoadProperties="string"
            Path="uri" />
        <RoleService
            LoadRoles="True|False"
            Path="uri" />
        <Scripts>
            <asp:ScriptReference
                Assembly="string"
                IgnoreScriptPath="True|False"
                Name="string"
                NotifyScriptLoaded="True|False"
                Path="string"
                ResourceUICultures="string"
                ScriptMode="Auto|Debug|Inherit|Release" />
        </Scripts>
        <Services>
            <asp:ServiceReference
                InlineScript="True|False"
                Path="string" />
        </Services>
</asp:ScriptManager>
8
codingbiz

ページの<Form>タグのすぐ下にスクリプトマネージャータグを追加できます。 Script Managerタグを配置する方法は次のとおりです。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>

マスターページを使用している場合は、AJAXコントロールを含むすべてのページで何度も何度も記述する必要がないように、マスターページでスクリプトマネージャーを使用することをお勧めします。

5
raheel khokhar

ScriptManagerタグ内にformを次のように配置するだけです。

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager> 

Master Pageがある場合は、これをマスターページ自体に配置します。

4
Vishal Suthar

スクリプトマネージャーがそのような問題を引き起こす場合が多くあります。試してみてくださいまず、適切なプレースホルダーまたはAjaxコントロールが使用されているコンテンツの前に表示されるプレースホルダーにスクリプトマネージャーを追加します。

  1. AJAX Control Panelを更新するだけでなく、Controlを使用しているときにScriptManagerを追加する必要があります。<asp:ScriptManager ID="ScriptManger1" runat="Server" />

  2. 最新のAjax Control Toolkitを使用している場合(バージョン4.0または4.5についてはわかりません)、デフォルトのAjax ExtensionsのScriptManagerではなく、その特定のToolkitScriptManagerを使用する必要があります。

  3. ページで使用できるScriptManagerまたはToolKitScriptManagerは1つだけです。マスターページに追加した場合は、Webページに再度追加する必要はありません。

  4. ここで言及した問題は、ContentPlaceHolderが原因である可能性があります。マスターページにあるコンテンツプレースホルダーの数を確認してください。マスターページに2つのコンテンツプレースホルダー「Head」と「ContentPlaceHolder1」があり、ContentPlaceHolder1がコンテンツページである場合の例を見てみましょう。次のコードを確認してください。

<!DOCTYPE html>

<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">
    <div>
        <asp:ContentPlaceHolder id="MainContent" runat="server">
        <asp:ScriptManager ID="ScriptManger1" runat="Server" />
          <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    </ContentTemplate>
</asp:UpdatePanel>
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html> 

Webページでデフォルトでマスターページを選択すると、ほとんどの人がWebフォームの設計中に間違いを犯します。MasterPageの時点で同じ数のプレースホルダーがあります。

<%@ Page Title="" Language="C#" MasterPageFile="~/Master Pages/Home.master" AutoEventWireup="true" CodeFile="frmCompanyLogin.aspx.cs" Inherits="Authentication_frmCompanyLogin" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>

ガイド構造であるPlaceHolderを削除する必要はありませんが、ScriptManagerを(マスターページで)追加した同じPlaceHolderにWebフォームコンテンツを追加するか、適切なプレースホルダーまたはコンテンツの前に表示されるプレースホルダーにスクリプトマネージャーを追加する必要がありますAjax Controlが使用されます。

2
Vijay Kumbhoje

ScriptManager は、以下を使用してページに登録するWebコントロールです

<asp:ScriptManager ID="ScriptManger1" runat="Server" />

formタグ内

1
PHeiberg

ASPXページにASPコントロールが必要です。通常、タグのすぐ下、またはマスターの本文の最初のコンテンツ領域内に配置します(マスターページを使用している場合)

<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
        <div>
            [Content]
        </div>
    </form>
</body>
1
Ray K
  • runat="server"付きのheadタグ付き
  • runat="server"を含むformタグ内
  • それを必要とするコントロールを含むContentPanelsの前-UpdatePanelsのある典型的なコントロール:

<%= PageTitle%>

</form>
 </body>
0

ASP.NETページのフォームタグ内。

0
Ryan Penfold

スクリプトマネージャーは、使用する前にページに配置する必要があります。これは、ページ自体に直接表示されます。または、使用している場合は、マスターページに表示されます。

マークアップは次のようになります。

 <asp:ScriptManager ID="ScriptManager1" runat="server" LoadScriptsBeforeUI="true"
            EnablePartialRendering="true" />
0
ChrisBint