我有一个ClassLibrary项目,我想在其中调用javascript function
,它应返回一些值。
如何从c#中的CS页面调用javascript function
?
我在谷歌搜索但没有得到完美的解决方案
答案 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);