2013-03-20 57 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