如何在类库项目中调用javascript函数

时间:2014-05-01 06:30:32

标签: javascript c#-3.0

我有一个ClassLibrary项目,我想在其中调用javascript function,它应返回一些值。

如何从c#中的CS页面调用javascript function

我在谷歌搜索但没有得到完美的解决方案

3 个答案:

答案 0 :(得分:0)

  

如何从c#中的CS页面调用javascript function

类库基本上是一个DLL,它主要封装代码,你可以从其他类库(DLL)引用并使用 - 我认为你的客户端代码可能是一个ASP.NET应用程序DLL。

您始终可以使用function方法从C#/ Class-Library调用JavasScript RegisterStartupScript

Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","MyFunction()",true);

请注意,如果页面加载,此代码 应在ASP.NET Page类的上下文中运行(Page_Load)。

对于类库,只需确保在项目中有正确的引用(右键单击项目→选择添加引用→选择并添加类库)。

示例代码:

public void Page_Load(Object sender, EventArgs e)
{
    String csname1 = "PopupScript";
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();

    ClientScriptManager cs = Page.ClientScript;

    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
      String cstext1 = "alert('Hello World');";
      cs.RegisterStartupScript(cstype, csname1, cstext1, true);
    }
}

答案 1 :(得分:0)

您可以将Page引用传递给类库,并在类库中执行JavaScript函数。

MyClassLib lib = new MyClassLib();
lib.RunJs(this.Page);

// In Class Lib 

Public Class MyClassLib 
{
  public void RunJs(System.Web.UI.Page page)
  {
      ClientScriptManager js = Page.ClientScript;
      ......
  }
}

我没试过,请试试这个。

答案 2 :(得分:0)

您可以使用ScriptManager.RegisterStartupScript从后面的代码调用JavaScript函数。

像:

JS代码:

function TestFunction() { 
       Alert("Test Function!!") 
       } 

代码背后:

Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "TestFunction();", true);