有人可以提供从 CodeBehind 和反之亦然调用 JavaScript 函数的好例子吗?
从 CodeBehind 调用 JavaScript 函数
IT技术
c#
javascript
asp.net
2021-01-26 03:36:14
6个回答
你可以试试这个:
Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","MyFunction()",true);
C# 到 JavaScript:您可以注册脚本块以在页面上运行,如下所示:
ClientScript.RegisterStartupScript(GetType(),"hwa","alert('Hello World');",true);
alert()
用您的函数名称替换部分。
要从 JavaScript 调用 C# 方法,您可以使用ScriptManager
或jQuery
。我个人使用jQuery
. 您需要使用WebMethod
属性装饰要从 JavaScript 调用的方法。有关PageMethod
从jQuery
您那里调用 C# 方法(已调用)的更多信息,请参阅Dave Ward 的帖子。
从后面的代码调用 JavaScript 函数
第 1 步添加您的 Javascript 代码
<script type="text/javascript" language="javascript">
function Func() {
alert("hello!")
}
</script>
步骤2加1脚本管理的WebForm中,添加1个按钮太多
第 3 步将此代码添加到您的按钮单击事件中
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "Func()", true);
如果您需要发送一个值作为参数。
string jsFunc = "myFunc(" + MyBackValue + ")";
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "myJsFn", jsFunc, true);
您不能直接执行此操作。在标准的 WebForms 中,JavaScript 由浏览器解释,C# 由服务器解释。您可以使用 JavaScript 从服务器调用方法。
- 使用
WebMethod
如attribute
在目标的方法。 - 添加
ScriptManager
设置EnablePageMethods
为true
. - 添加 JavaScript 代码以通过对象调用方法
PageMethods
。
像这样:
步骤1
public partial class Products : System.Web.UI.Page
{
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public static List<Product> GetProducts(int cateogryID)
{
// Put your logic here to get the Product list
}
第 2 步:ScriptManager
在Page
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
第 3 步:使用 JavaScript 调用方法
function GetProductsByCategoryID(categoryID)
{
PageMethods.GetProducts(categoryID, OnGetProductsComplete);
}
要从服务器调用 JavaScript 函数,您可以使用RegisterStartupScript
:
ClientScript.RegisterStartupScript(GetType(),"id","callMyJSFunction()",true);