2013-01-05 15 views
26

Ho un piccolo dubbio su cui non ho potuto trovare la risposta, quindi ho pensato di trovare la risposta qui. Perché dovremmo aggiungereCosa fa effettivamente il controllo del gestore di script?

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

controllo al fine di utilizzare

<asp:UpdatePanel runat="server"> in out aspx page. 

speranza qualcuno può dare la risposta.

risposta

28

Il controllo ScriptManager registra lo script per la libreria Microsoft AJAX con la pagina. Ciò abilita le funzionalità di supporto degli script client come il rendering di pagine parziali e le chiamate al servizio web.

È necessario utilizzare un controllo ScriptManager su una pagina per abilitare le seguenti funzionalità di ASP.NET AJAX:

1. funzionalità client-script del Microsoft AJAX Library e qualsiasi script personalizzato che si desidera invia al browser.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(
     this.GetType(),"myscript","alert('hello world!');"); 
} 

2. rappresentazione parziale-pagina che consente alle regioni sulla pagina per essere aggiornato in modo indipendente senza postback. I controlli UpdatePanel, UpdateProgress e Timer di ASP.NET AJAX richiedono un controllo ScriptManager per supportare il rendering di pagine parziali.

3. Classi proxy JavaScript per servizi Web, che consentono di utilizzare lo script client per accedere ai servizi Web esponendo i servizi Web come oggetti fortemente tipizzati.

[WebMethod] 
public int Add(int a, int b) { return a + b; } 

function CallAdd() 
{ 
    // method will return immediately 
    // processing done asynchronously 
    WebService.Add(0,6, OnMethodSucceeded, OnMethodFailed); 
} 

4. classi JavaScript di accedere ai servizi di autenticazione ASP.NET e applicazione del profilo.

Sys.Services.AuthenticationService.login 
Sys.Services.AuthenticationService.logout 

<script type="text/javascript"> 
    function MyMethod(username, password) 
    { 
     Sys.Services.AuthenticationService.login(username, 
      password,false,null,null,null,null,"User Context"); 
    } 
</script> 

saperne di più visita http://msdn.microsoft.com/en-us/magazine/cc163354.aspx

+0

Posso usare 'ScriptManager' *** senza *** usando ** Microsoft AJAX Library **? – Kiquenet

2

Il controllo ScriptManager gestisce lo script client per le pagine Web ASP.NET abilitate per AJAX. Quindi, per utilizzare UpdatePanel o qualsiasi altro controllo AJAX, è necessario utilizzare il controllo ScriptManager all'inizio.

13

Oltre risposte di cui sopra, vorrei aggiungere alcuni punti per la ragione che sta dietro all'uso ScriptManager controllo. I controlli che hai menzionato UpdatePanel e ScriptManager vengono utilizzati per i siti ASP.NET AJAX Enabled.

  • Li usiamo, primo luogo, perché nelle pagine web tradizionali l'intera pagina viene caricata dopo un postback, il codice HTML inviato al browser è molto più grande di quanto ha bisogno di essere.
  • In secondo luogo, perché l'intera pagina viene sostituita, il browser deve respingere il vecchio e quindi disegnare la nuova. Questo fa sì che la pagina "sfarfallio", che si traduce in un'esperienza utente poco attraente. enter image description here

Il ScriptManager di controllo funge da ponte tra pagina client e il server. Poiché è come un bridge, devi utilizzare questo controllo se è necessario aggiungere uno degli altri controlli AJAX. Gestisce risorse di script (i file JavaScript utilizzati presso il cliente), si prende cura di aggiornamenti a pagina parziale, come illustrato in precedenza e gestisce l'interazione con il tuo sito web per cose come servizi web e dei servizi applicativi ASP.NET , ad esempio appartenenza , ruoli e profilo. Ogni volta che uno dei controlli all'interno di UpdatePanel provoca un postback al server , viene aggiornato solo il contenuto all'interno di tale UpdatePanel.

Se si analizzano i dati che viene inviato dal server al browser (utilizzando uno strumento di analisi di rete come Fiddler o Wireshark), si vedrebbe che solo una quantità limitata di dati viene inviato al client.

È di solito si svolge il controllo ScriptManager direttamente in un contenuto pagina se si pensa che è necessario funzionalità Ajax solo su una manciata di pagine.

Se avete intenzione di utilizzare la funzionalità Ajax in molte delle vostre pagine ASPX, è possibile inserire il ScriptManager nella pagina master, quindi è disponibile in tutte le pagine che si basano su questo master.

È possibile avere un solo ScriptManager per pagina (cioè solo ponte, se vi capita due ponti quindi la richiesta della pagina/risposta può confondersi da dove andare !?: D), così se ne aggiungi uno a una pagina principale, non è possibile aggiungerne un altro a una pagina di contenuto. Per accedere a un controllo ScriptManager definito in una pagina principale da una pagina di contenuto, , è possibile utilizzare ScriptManagerProxy.

Problemi correlati