2012-12-26 17 views
12

Ho una pagina che aggiunge script di file ad albero.Esegui javascript dopo un postback parziale di un aggiornamento?

<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript" src="js/init.js"></script> 
<script type="text/javascript" src="js/easing.js"></script> 

Ho un aggiornamento con un elenco a discesa. Quando si esegue l'evento SelectedIndexChanged (postback parziale di un updatepanel), non eseguire javascript.

+3

Ecco come si fa: http://stackoverflow.com/questions/3341623/asp-net-updatepanel-in-gridview-jquery-datepicker/3341741#3341741 – Aristos

risposta

23

Usa

function pageLoad(sender, args) { 

    InitialiseSettings(); 
} 

function InitialiseSettings(){ 
    // replace your DOM Loaded settings here. 
    // If you already have document.ready event, 
    // just take the function part and replace here. 
    // Not with document.ready 
    $(element).slideUp(1000, method, callback}); 

    $(element).slideUp({ 
        duration: 1000, 
        easing: method, 
        complete: callback}); 
} 

o provare con gestore add_endRequest eventi:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(InitialiseSettings) 

Aggiornamento

Meglio spostare il tutto il codice da document.ready alla funzione InitialiseSettings e passaggio a pageLoaded evento

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitialiseSettings) 

Esempio di codice:

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitialiseSettings) 
+0

Grazie mille, ma per facilitare l'inizializzazione in InitialiseSettings. – Niloo

+0

@Niloo Vedi la mia risposta aggiornata –

+0

Grazie, dovrei usare questo: '$ (document) .ready (function() {Sys.WebForms.PageRequestManager.getInstance().add_endRequest (InitialiseSettings) InitialiseSettings function() {// allentamento, dall'altro l'inizializzazione va qui }}) ' – Niloo

18

per eseguire il javascript in postback totali e parziali, inserire il codice javascript in javascript Pageload (funzione).

function pageLoad() 
{ 
    //your javascript code 
} 

Esempio:

function pageLoad() { 

    $(':submit').click(function() { 
     CommodityArray(); 
    }); 
    $('#btn_image').click(function() { 
     CommodityArray(); 
    }); 
    $(".repHeader").disableSelection(); 

    CommodityArray(); 
} 

Speranza che aiuta! :)

+0

@Aristos :: Vuoi dire che questo non funziona con il pannello di aggiornamento? Hai provato tu stesso ?? – Avishek

+0

@Niloo :: scrivi il tuo codice all'interno di pageLoad() {//} invece di $ (document) .ready (function() {//} per eseguirlo ogni volta che la Pagina ricarica o postback. – Avishek

+0

+1 Ok, è funziona per net 4+ http://msdn.microsoft.com/en-us/library/bb386417(v=vs.100).aspx – Aristos

6

È necessario utilizzare il seguente codice dopo il pannello di aggiornamento.

<script type="text/javascript" language="javascript"> 
var pageRequestManager = Sys.WebForms.PageRequestManager.getInstance(); 
pageRequestManager.add_endRequest(NewCharacterCount); 
</script> 

dove NewCharacterCount è il nome della funzione JavaScript.

Leggi questo articolo Sys.WebForms.PageRequestManager endRequest Event Spero che possa aiutarti.

0

Se si utilizza UpdatePanel e si desidera richiamare una funzione javascript dopo l'aggiornamento del contenuto nel pannello di aggiornamento, è possibile utilizzare in basso il modo per farlo facilmente. In Pagina body tag, chiamare una funzione RefreshContent()

<body onload="RefreshContent()"> 

<script type="text/javascript"> 
    function RefreshContent() 
    { 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
    } 

    function EndRequestHandler() 
    { 
    alert("Add your logic here"); 
    } 
</script> 

collegamento Riferimento http://www.infoa2z.com/asp.net/how-to-call-javascript-function-after-an-updatepanel-asychronous-request-to-asp.net-page

0

È possibile utilizzare PageRequestManager client events. Il parametro del mittente conterrà le informazioni necessarie. Per esempio si potrebbe fare questo:

// Register event handler 
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded); 

/// Executed when all page content is refreshed, full page or async postback: https://msdn.microsoft.com/en-us/library/bb397523.aspx 
function pageLoaded(sender, args) { 
    var isPostBack = sender.get_isInAsyncPostBack(); 
    if(!isPostBack) return; 

    // PostBack logic here. 
} 
Problemi correlati