从JavaScript调用ASP.NET函数

147
我正在用ASP.NET编写一个网页。我有一些JavaScript代码,并且我有一个带有点击事件的提交按钮。
在JavaScript的点击事件中,是否可以调用我在ASP中创建的方法?

1
你应该使用一些 Ajax 库,比如:Anthem - jdecuyper
20个回答

1
关于:
var button = document.getElementById(/* Button client id */);

button.click();

应该是这样的:

它应该像这样:

var button = document.getElementById('<%=formID.ClientID%>');

其中formID是.aspx文件中的ASP.NET控件ID。


1
你可能想为常用方法创建一个 Web 服务。
只需在要调用的函数上添加 WebMethodAttribute,就可以了。
拥有一个包含所有常用内容的 Web 服务也使系统更易于维护。

0
请尝试这个:
<%= Page.ClientScript.GetPostBackEventReference(ddlVoucherType, String.Empty) %>;

ddlVoucherType是一个控件,当选择的索引更改时将调用...您可以在此控件的选择索引更改上放置任何函数。


0
如果您遇到“对象期望”错误,请在页面加载时添加此行代码。
ClientScript.GetPostBackEventReference(this, "");

0

你也可以通过在JavaScript代码中添加这一行来获得它:

document.getElementById('<%=btnName.ClientID%>').click()

我觉得这个非常容易!


0

试试这个:

if(!ClientScript.IsStartupScriptRegistered("window"))
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "window", "pop();", true);
}

或者这个

Response.Write("<script>alert('Hello World');</script>");

使用按钮的OnClientClick属性调用JavaScript函数...

0

您可以使用PageMethods.您的C#方法名称来访问C#方法或VB.NET方法并将其嵌入JavaScript中。


0

实现这一点最简单、最好的方法是使用 onmouseup() JavaScript 事件,而不是 onclick()

这样,您将在单击后触发 JavaScript,而不会干扰 ASP 的 OnClick() 事件。


0

我尝试了这个,这样我就可以在使用jQuery时运行Asp.Net方法。

  1. 在您的jQuery代码中执行页面重定向

    window.location = "Page.aspx?key=1";
    
  2. 然后在页面加载中使用查询字符串

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["key"] != null)
        {
            string key= Request.QueryString["key"];
            if (key=="1")
            {
                // 一些代码
            }
        }
    }
    

所以不需要运行额外的代码


-1

这个回复对我来说非常顺畅,感谢跨浏览器支持:

__doPostBack() 方法运行良好。

另一个解决方案(非常hackish)是在你的标记中添加一个不可见的ASP按钮,并使用JavaScript方法单击它。

<div style="display: none;"> 
    <asp:Button runat="server" ... OnClick="ButtonClickHandlerMethod" /> 
</div> 

从你的 JavaScript 中,使用它的 ClientID 检索到该按钮的引用,然后调用 .Click() 方法:

var button = document.getElementByID(/* button client id */); 

button.Click(); 

块引用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接