从 JavaScript 调用 ASP.NET 函数?
2022-08-30 04:04:55
我正在用 ASP.NET 写一个网页。我有一些JavaScript代码,我有一个带有点击事件的提交按钮。
是否可以使用 JavaScript 的 click 事件调用我在 ASP 中创建的方法?
我正在用 ASP.NET 写一个网页。我有一些JavaScript代码,我有一个带有点击事件的提交按钮。
是否可以使用 JavaScript 的 click 事件调用我在 ASP 中创建的方法?
好吧,如果您不想使用Ajax或任何其他方式执行此操作,而只想进行正常的 ASP.NET 回发,那么您可以按照以下步骤操作(不使用任何其他库):
虽然这有点棘手...:)
i. 在代码文件中(假设您使用的是 C# 和 .NET 2.0 或更高版本),将以下接口添加到 Page 类中,使其看起来像
public partial class Default : System.Web.UI.Page, IPostBackEventHandler{}
ii. 这应该将(使用 -) 此函数添加到您的代码文件中:TabTab
public void RaisePostBackEvent(string eventArgument) { }
iii. 在 JavaScript 的 onclick 事件中,编写以下代码:
var pageId = '<%= Page.ClientID %>';
__doPostBack(pageId, argumentString);
这将调用代码文件中的“RaisePostBackEvent”方法,并将“eventArgument”作为您从JavaScript传递的“argumentString”。现在,您可以调用您喜欢的任何其他事件。
P.S:那就是“下划线-下划线-doPostBack”...而且,该序列中不应有空格...不知何故,大规模杀伤性武器不允许我写下划线后跟一个字符!
该方法运行良好。__doPostBack()
另一种解决方案(非常黑客)是简单地在标记中添加一个不可见的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();