从 JavaScript 调用 ASP.NET 函数?

2022-08-30 04:04:55

我正在用 ASP.NET 写一个网页。我有一些JavaScript代码,我有一个带有点击事件的提交按钮。

是否可以使用 JavaScript 的 click 事件调用我在 ASP 中创建的方法?


答案 1

好吧,如果您不想使用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”...而且,该序列中不应有空格...不知何故,大规模杀伤性武器不允许我写下划线后跟一个字符!


答案 2

该方法运行良好。__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();