从 CodeBehind 调用 JavaScript 函数

IT技术 c# javascript asp.net
2021-01-26 03:36:14

有人可以提供从 CodeBehind 和反之亦然调用 JavaScript 函数的好例子吗?

6个回答

你可以试试这个:

Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","MyFunction()",true);
我会选择 ScriptManager.RegisterStartupScript(Page, typeof(Page), "somekey", script, true); 方法。它也适用于部分回发。
2021-03-12 03:36:14
当代码用 an 包裹asp:UpdatePanel并写入按钮事件时,这不起作用这会导致页面回发。
2021-03-19 03:36:14
ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "text", "openDep()", true);作品。this.GetType()为我抛出一个错误。
2021-03-24 03:36:14
1. 有时Page.ClientScript.RegisterClientScriptBlock需要 查看此帖子以获取信息2. 值得一提的是,为了让 MyFunction() 工作,MyFunction() 必须在表单标签之前或它们内部定义,但不能在 </form> 结束标签之后定义(否则对象预期错误将发生)
2021-04-06 03:36:14

C# 到 JavaScript:您可以注册脚本块以在页面上运行,如下所示:

ClientScript.RegisterStartupScript(GetType(),"hwa","alert('Hello World');",true);

alert()用您的函数名称替换部分。

要从 JavaScript 调用 C# 方法,您可以使用ScriptManagerjQuery我个人使用jQuery. 您需要使用WebMethod属性装饰要从 JavaScript 调用的方法有关PageMethodjQuery那里调用 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);
当单击 GridView 行时尝试执行此操作时,它仅在使用ScriptManageras in this answer时才有效,而不是Page.ClientScript在其他答案中。可能与asp:UpdatePanel已接受答案下的评论有关
2021-03-24 03:36:14

如果您需要发送一个值作为参数。

string jsFunc = "myFunc(" + MyBackValue + ")";
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "myJsFn", jsFunc, true);

您不能直接执行此操作。在标准的 WebForms 中,JavaScript 由浏览器解释,C# 由服务器解释。您可以使用 JavaScript 从服务器调用方法。

像这样:

步骤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 步:ScriptManagerPage

<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);
您将第一步放在 MVC 3 文件层次结构中的什么位置?
2021-03-16 03:36:14
@Rob 该GetProducts()函数只是一个代码隐藏函数,它将存在于 MVC 应用程序的控制器中,因此标签位于您想要放置在您打算从 JavaScript 调用的控制器中的任何函数之上.
2021-04-05 03:36:14