2012-03-15 7 views
11

Ho funzioni comuni e lo collasso su CommonFunctions.js nella cartella Scripts.Dopo la postback la mia funzione JavaScript non funziona in ASP.NET

Lo includo nella mia pagina principale e lo uso sulle mie pagine. Quando faccio qualsiasi post su una pagina, la mia funzione non funziona.

mio CommonFunctions.js:

$(function() { 

    gf(); 

    if (Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) { 

     gf(); 
    } 


function gf(){ 

    $('.AddNewGeneralPanel').click(function() { 

     if ($(this).find('.AddNewGeneralPanelStyle').text() == "") { 
      $(this).find('.AddNewGeneralPanelStyle').text("( Gizle )"); 
      lastOpenId = $(this).attr("kodid"); 
     } 
     else 
      $(this).find('.AddNewGeneralPanelStyle').text(""); 

     $(this).next('.AddNewGeneralAccordionDiv').slideToggle('slow', function() { 

     }); 

    }); 
    } 
}); 
+1

stai facendo postback parziale? Intendo pannello di aggiornamento con postback condizionale? – PraveenVenu

+2

Giusto per confermare: è questo ESATTAMENTE il codice che stai usando? Vedo una chiamata a una funzione "gf" ma viene dichiarata una funzione "gF". Non dimenticare JS fa distinzione tra maiuscole e minuscole –

+0

sì io uso update panel.it funziona bene con postback quando uso questi codici javascript usando

19

È a causa di post-aggiornamenti parziali updatepanel. ecco cosa devi fare.

function pageLoad(sender, args) 
{ 
    $(document).ready(function(){ 

    // put all your javascript functions here 

    }); 
} 

Ho avuto lo stesso problema e ha funzionato per me. Mi auguro possa aiutare anche te.

+1

questo codice funziona sulla stessa pagina ma l'ho chiamato in masterpage.io lo provo ma non funziona per me – Mennan

+0

hai un tag scriptmanager nella pagina principale? se non lo metti lì e riprova. – PraveenLearnsEveryday

+0

ho risolto questo problema con [postback] (http://stackoverflow.com/questions/256195/jquery-document-ready-and-updatepanels) – Mennan

1

Supponendo che si stia utilizzando un UpdatePanel per eseguire il postback e che il codice JS sia compatibile con gli elementi HTML all'interno del riquadro di aggiornamento, è necessario collegarli nuovamente quando viene caricato il pannello di aggiornamento. È possibile collegare il vostro codice sul caso endRequest:

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

http://msdn.microsoft.com/en-us/library/bb383810.aspx

Tenete presente che se si utilizza più di un pannello di aggiornamento si dovrebbe verificare che pannello di aggiornamento viene aggiornata e allegare solo gli eventi che sono necessari altrimenti rischi di licenziare gli eventi più di una volta.

7

È a causa di updatepannel utilizzato. Il seguente codice funziona correttamente. Basta inserire il codice jquery all'interno della manifestazione pageLoad come qui di seguito

function pageLoad(sender, args) { 
    $(document).ready(function() {....} 
} 
+0

L'unica funzione necessaria. Grazie! +1 – Si8

2

Ho lo stesso problema, ho risolto con questo codice:

<script type="text/javascript"> 
    function pageLoad() 
    { 
     $('#datetimepicker2').datetimepicker();   
    } 
</script> 
0

stesso problema affrontato. Cambia

$(document).ready(function() { 

a

Sys.Application.add_load(function() { 

questo costringerà a correre anche su postbacck parziale

Problemi correlati