gpt4 book ai didi

javascript - 从 Javascript 触发回发

转载 作者:行者123 更新时间:2023-12-01 05:51:16 24 4
gpt4 key购买 nike

好的,我知道这个问题已经被问了很多次,并且我在网上找到了大量关于此问题的信息。不幸的是,这些似乎都不适合我。

基本上,我运行了一些 JavaScript 来响应用户事件。 JavaScript 获取一些信息(一个 int),然后我想将其返回到服务器。

第一种方法是使用 Page.ClientScript.GetPostBackEventReference 来获取对 __DoPostBack() 的有效调用,如 here 中所述。 .

我使用此方法从按钮触发回发。这似乎有效,但我收到错误:

Invalid postback or callback argument. Event validation is enabled using in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

接下来,我尝试使用 HiddenField 的 ValueChanged 事件处理程序。我编写了处理程序,但更改隐藏字段的值不会触发该事件。某种形式的回发仍然需要以某种方式触发。

我真的不明白为什么我会遇到这么多麻烦。有没有更直接的方法来完成我需要的事情?

最佳答案

哇,没有答案。谁会想到这如此晦涩难懂。

无论如何,这对我有用。我刚刚向表单添加了一个 ASP.NET HiddenField,其中包含 ValueChanged 事件的服务器端处理程序。

<asp:HiddenField ID="MyHidden" runat="server" OnValueChanged="MyHidden_ValueChanged" />

然后,为了响应用户操作,我的 JavaScript 设置此隐藏字段的值。

$('#<%= MyHidden.ClientID %>').val(myData);

最后,为了触发隐藏字段的 ValueChanged 事件,我使用以下代码启动回发。 GetPostBackEventReference() 返回一个 JavaScript 语句,它将替换服务器端标记。

<%= Page.ClientScript.GetPostBackEventReference(MyHidden, String.Empty) %>;

而且看起来效果很好。发生回发,并调用我的 ValueChanged 处理程序。该处理程序确定我的隐藏字段的值并执行所需的操作。

关于javascript - 从 Javascript 触发回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22000220/

24 4 0