2013-03-20 6 views
0

J'ai deux fonctions javascript dans ma page ASPX. Ils utilisent des fonctions fabric.js.Appel de la fonction JS à partir de ASP.NET codebehind

function saveCanvas() { 
    js = JSON.stringify(canvas.toDatalessJSON()); 
    $get('<%= txtJSON.ClientID%>').value = js; 

} 
function loadCanvas() { 
    js = $get('<%= txtJSON.ClientID%>').value; 
    canvas.clear(); 
    canvas.loadFromDatalessJSON(js); 
    canvas.renderAll(); 
} 

Et dans le behind:

Protected Sub SaveJSON() 
    Dim scriptKey As String = "123" 
    Dim javaScript As String = "<script type='text/javascript'>saveCanvas();</script>" 
    ClientScript.RegisterStartupScript(Me.GetType(), scriptKey, javaScript) 
End Sub 

Protected Sub LoadJSON() 
    Dim scriptKey As String = "456" 
    Dim javaScript As String = "<script type='text/javascript'>loadCanvas();</script>" 
    ClientScript.RegisterStartupScript(Me.GetType(), scriptKey, javaScript) 
End Sub 

Ma question: Pourquoi loadCanvas fonctionne tout saveCanvas ne fonctionne pas? txtJSON n'est pas rempli avec la chaîne JSON. L'appel de la fonction saveCanvas à partir de la page aspx fonctionne correctement.

Répondre

0

Le problème est que vous appelez saveCanvas après que la publication est terminée et à ce stade les données de canevas ont disparu depuis longtemps.

Si vous avez un bouton « Enregistrer », vous devez appeler saveCanvas quand on clique dessus pour que les données sont enregistrées avant que les messages de navigateur la page au serveur:

<asp:Button runat="server" Text="Save" OnClickClick="saveCanvas()" /> 
+0

J'ai en effet une sauvegarde bouton. Si j'ajoute votre événement "onclick" j'obtiens une erreur: traduit "javascript n'est pas un membre de la page aspx.": Foutbericht van compiler: BC30456: javascript est geen couvercle van ASP.plattegrond_aspx. – leof

+0

Veuillez comprendre que j'ai aussi un événement "saveCanvasbutton_click" dans mon codebehind. Au début, j'ai appelé le "saveCanvas" d'ici, mais cela n'a pas fonctionné. – leof

+0

Cela a fonctionné: Merci! – leof

Questions connexes