320 messaggi dal 12 gennaio 2007
Ho provato con una partialview.La partialview aggiorna la pagina,e fin qui tutto bene.
Nella partialview però,dopo l'aggiornamento parziale , non funziona più jquery,ma solo nella parte aggiornata.Sai il perchè?
Saluti massimo

Massimo Sanfelici

Mantova
Ciao,

il problema è che l'invocazione Ajax sostituisce, nella porzione di pagina aggiornata, gli element presenti nel DOM con quelli reinviati dal controller.

In altre parole, dopo che hai completato l'aggiornamento, gli elementi a cui era agganciato jQuery non esistono più  e pertanto devi reinizializzare la stessa logica sui nuovi. Ad esempio, se il tuo controller restituisce una view con un box di testo, che tu vuoi trasformare in datepicker con jQuery UI, devi rieseguire il $('#myText').datepicker().

La classe AjaxOptions che uso nello script ha una proprietà chiamata OnSuccess che puoi valorizzare con il nome di una funzione javascript da invocare al termine del caricamento asincrono.

<%= Ajax.ActionLink(
   .., 
   .., 
   .., 
   new AjaxOptions() {.., 
       OnSuccess = "initializeJQuery" } %>

Tutto chiaro?
m.
320 messaggi dal 12 gennaio 2007
Tutto chiaro,garzie mille.
Però con questo codice:
<% Using Ajax.BeginForm("Index", New AjaxOptions With {.UpdateTargetId = "Ord", .InsertionMode = InsertionMode.Replace, .OnSuccess = "ricarica"})%>

mi va a sostituire completamente la pagina con il <div id="Ord">

Massimo

Massimo Sanfelici

Mantova
Sei sicuro di aver referenziato correttamente gli script per abilitare Ajax? Prova a dare un'occhiata all'esempio allegato allo script.

Ciao,
m.
320 messaggi dal 12 gennaio 2007
Se intendi
<script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
li ho referenziati nella masterpage.

nel tuo esempio ../../Scripts....

ho provato anche così ,ma la risposta non cambia.

Massimo Sanfelici

Mantova
320 messaggi dal 12 gennaio 2007
Ok,ho risolto.
Richiamavo la funzione ricarica() in questo modo

<script type="text/javascript">
$(document).ready(function () {
function ricarica() {........};
};
</script>

invece invece se la richiamo così funziona
<script type="text/javascript">
function ricarica() {
$(document).ready(function () {..............
};

};
</script>

Grazie,mi sei stato di grande aiuto.

Massimo Sanfelici

Mantova
Sono contento che hai risolto anche prima che riuscissi ad analizzare questo tuo ultimo dubbio

Ciao!
m.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.