从ASP.NET代码隐藏调用JS函数

时间:2013-03-20 11:26:05

标签: javascript asp.net

我的aspx页面中有两个javascript函数。他们使用一些fabric.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函数可以正常工作。

1 个答案:

答案 0 :(得分:0)

问题是你在回发完成后调用saveCanvas,此时画布数据已经很久了。

如果您有一个“保存”按钮,则需要在单击时调用saveCanvas,以便在浏览器将页面发布回服务器之前保存数据:

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