2013-03-20 58 views
0

我在我的aspx頁面中有兩個javascript函數。他們使用一些fabric.js功能。從ASP.NET代碼隱藏中調用JS函數

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(); 
} 

而在代碼隱藏:

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 

現在我的問題:爲什麼loadCanvas工作,同時saveCanvas不? txtJSON未使用JSON字符串填充。 從aspx頁面調用saveCanvas函數可以正常工作。

回答

0

問題在於,回發完成後您調用saveCanvas,此時畫布數據已消失。

如果你有一個按鈕「保存」,那麼你需要調用saveCanvas單擊時,這樣的數據在瀏覽器上崗前保存的頁面回服務器:

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

我確實有一個保存按鈕。如果我添加你的「onclick」事件,我得到一個錯誤:翻譯「javascript不是aspx頁面的成員」。:Foutbericht van compiler:BC30456:javascript is geen lid van ASP.plattegrond_aspx。 – leof 2013-03-20 12:25:39

+0

請理解,我在代碼隱藏中也有一個「saveCanvasbutton_click」事件。起初我從這裏打電話給「saveCanvas」,但那不起作用。 – leof 2013-03-20 12:30:29

+0

這工作:謝謝! – leof 2013-03-20 13:08:06