it-swarm.com.de

Der ScriptManager muss vor allen Steuerelementen angezeigt werden, die dies erfordern

Ich habe eine neue ASP.NET-Webanwendung erstellt und nach dem Debuggen habe ich Serverfehler erhalten

Das Steuerelement mit der ID 'WaitingPopup1' erfordert einen ScriptManager auf der Seite. Der ScriptManager muss vor allen Steuerelementen angezeigt werden, die dies erfordern. 

Ich bin neu mit ASP.NET, also wo sollte ich meinen ScriptManager in der web.config installieren?

23
H79

Die ScriptManager ist ein Steuerelement, das der von Ihnen erstellten Seite hinzugefügt werden muss.

Werfen Sie einen Blick auf diese Sample AJAX - Anwendung .

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

Wenn Sie Microsoft ajax auf Ihrer Seite verwenden, müssen Sie das Skriptmanager-Steuerelement Ihrer Masterseite oder der Seite hinzufügen, die dies erfordert. Verwaltet ASP.NET-Ajax-Skriptbibliotheken und -Skriptdateien, teilweise Rendern von Seiten und Generierung von Client-Proxy-Klassen für Web- und Anwendungsdienste

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

Die volle Nutzung

<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

Sie können Ihre Script Manager-Tags direkt unter dem <Form>-Tag Ihrer Seite hinzufügen. So platzieren Sie Ihren Script Manager-Tag.

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

Wenn Sie Masterseiten verwenden, empfiehlt es sich, den Skript-Manager in Ihrer Masterseite zu verwenden, damit Sie ihn nicht immer und immer wieder auf jeder Seite schreiben müssen, die AJAX - Steuerelemente enthält.

5
raheel khokhar

Fügen Sie einfach ScriptManager im form-Tag wie folgt ein:

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

Wenn es Master Page hat, dann füge dies in die Master-Seite ein.

4
Vishal Suthar

Es gibt viele Fälle, in denen der Skript-Manager ein solches Problem verursacht. Sie versuchen dies zuerst Fügen Sie den Script Manager in den entsprechenden Platzhalter oder einen anderen Platzhalter ein, der vor dem Inhalt angezeigt wird, in dem Ajax Control verwendet wird.

  1. Wir müssen ScriptManager hinzufügen, während Sie ein beliebiges AJAX - Steuerelement verwenden, um nicht nur das Panel zu aktualisieren .<asp:ScriptManager ID="ScriptManger1" runat="Server" />

  2. Wenn Sie das neueste Ajax Control Toolkit verwenden (ich bin mir nicht sicher, ob es sich um Version 4.0 oder 4.5 handelt), müssen Sie den betreffenden ToolkitScriptManager und nicht ScriptManager aus den Standard-Ajax-Erweiterungen verwenden.

  3. Sie können nur einen ScriptManager oder ToolKitScriptManager auf der Seite verwenden. Wenn Sie ihn auf der Masterseite hinzugefügt haben, müssen Sie ihn nicht erneut auf der Webseite hinzufügen. 

  4. Das hier erwähnte Problem kann durch ContentPlaceHolder verursacht werden. Überprüfen Sie, wie viele Platzhalter auf Ihrer Masterseite vorhanden sind. Nehmen wir ein Beispiel, wenn Sie zwei Inhaltsplatzhalter "Head" und "ContentPlaceHolder1" auf der Masterseite haben und ContentPlaceHolder1 Ihr Inhalt ist. Überprüfen Sie den folgenden Code. Ich habe hier meinen ScriptManager auf dem zweiten Platzhalter hinzugefügt. 

<!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> 

Die meisten von uns machen Fehler beim Entwerfen von Webformularen, wenn wir Masterpage standardmäßig auf Webseiten auswählen. Es gibt genauso viele Platzhalter wie bei 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>

Es ist nicht erforderlich, PlaceHolder zu entfernen, da es sich dabei um eine leitende Struktur handelt. Sie müssen jedoch das Webformular Contents in Same PlaceHolder hinzufügen, in dem Sie Ihren ScriptManager (auf der Masterseite) hinzugefügt haben, oder Script Manager in den entsprechenden Platzhalter oder einen Platzhalter einfügen, der vor dem Inhalt angezeigt wird in dem Ajax Control verwendet wird.

2
Vijay Kumbhoje

Die ScriptManager ist ein Websteuerelement, das Sie auf der Seite registrieren

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

innerhalb des Form-Tags

1
PHeiberg

Es benötigt einfach das ASP - Steuerelement auf Ihrer ASPX-Seite. Ich platziere meine normalerweise direkt unter dem Tag oder innerhalb des ersten Inhaltsbereichs des Masters (wenn Sie eine Masterseite verwenden).

<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
        <div>
            [Content]
        </div>
    </form>
</body>
1
Ray K
  • mit einem head-Tag mit runat="server"
  • in einem form-Tag mit runat="server"
  • vor den ContentPanels-Steuerelementen, die dies erfordern - typische Steuerelemente mit UpdatePanels:

<% = PageTitle%>

</form>
 </body>
0

Auf der ASP.NET-Seite innerhalb der Formulartags.

0
Ryan Penfold

Der Skriptmanager muss vor der Verwendung auf der Seite platziert werden. Dies wäre direkt auf der Seite selbst oder alternativ, wenn Sie sie verwenden, auf der Masterseite.

Das Markup wäre:

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