我正在用ASP.NET编写一个网页。我有一些JavaScript代码,并且我有一个带有点击事件的提交按钮。
在JavaScript的点击事件中,是否可以调用我在ASP中创建的方法?
在JavaScript的点击事件中,是否可以调用我在ASP中创建的方法?
var button = document.getElementById(/* Button client id */);
button.click();
它应该像这样:
var button = document.getElementById('<%=formID.ClientID%>');
其中formID是.aspx文件中的ASP.NET控件ID。
<%= Page.ClientScript.GetPostBackEventReference(ddlVoucherType, String.Empty) %>;
ddlVoucherType是一个控件,当选择的索引更改时将调用...您可以在此控件的选择索引更改上放置任何函数。
ClientScript.GetPostBackEventReference(this, "");
你也可以通过在JavaScript代码中添加这一行来获得它:
document.getElementById('<%=btnName.ClientID%>').click()
我觉得这个非常容易!
试试这个:
if(!ClientScript.IsStartupScriptRegistered("window"))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "window", "pop();", true);
}
或者这个
Response.Write("<script>alert('Hello World');</script>");
您可以使用PageMethods.您的C#方法名称
来访问C#方法或VB.NET方法并将其嵌入JavaScript中。
实现这一点最简单、最好的方法是使用 onmouseup()
JavaScript 事件,而不是 onclick()
这样,您将在单击后触发 JavaScript,而不会干扰 ASP 的 OnClick()
事件。
我尝试了这个,这样我就可以在使用jQuery时运行Asp.Net方法。
在您的jQuery代码中执行页面重定向
window.location = "Page.aspx?key=1";
然后在页面加载中使用查询字符串
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["key"] != null)
{
string key= Request.QueryString["key"];
if (key=="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();
块引用