从ASP.NET中的C#codebehind调用Javascript(Raphael.js库)

时间:2012-05-23 13:36:24

标签: c# javascript asp.net raphael code-behind

我正在尝试从C#中的代码中调用一些函数。我正在搜索如何做到这一点,并能够在我想要的时候调用警报显示。但是,我不知道怎么称呼其他东西!

这是我需要从后面的代码中调用的:

var paper = Raphael("paper1", 800, 800);
var Plan = paper.path("M100, 100 a 50, 50 0 0,1 50, 50 l -50 0 l 0, -50");
Plan.attr({ fill: "#FF6600" });

我在普通的HTML文件上尝试了这些,但我无法使用它。我也在使用母版页,我发现的大多数例子都没有母版页,所以我很遗憾。

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:0)

Javascript只能在客户端调用。如果您绝对需要从服务器端调用它,则可以使用asp:HiddenField的值作为标记,以便在需要返回时执行javascript代码,然后在满足要求时运行所需的javascript。

但它不是一个很好的解决方案,你应该尝试将服务器和客户端分开。

希望无论如何都有帮助!

答案 1 :(得分:0)

在.aspx页面中创建一个Javascript函数,然后从代码后面调用函数,如下所示:

html代码中的函数

function dostuff()
{
  // code here
}

C# code in code behind
 protected void callmethod()
    {
        StringBuilder oSB = new StringBuilder();
         Type cstype = this.GetType();


        try
        {
            oSB.Append("<script language=javaScript>");
            oSB.Append("dostuff();");
            oSB.Append("</script>");
            Page.ClientScript.RegisterClientScriptBlock(cstype, Guid.NewGuid().ToString(), oSB.ToString(), false);
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            oSB = null;
        }
    }