gpt4 book ai didi

javascript - 没有控制上下文的回发

转载 作者:行者123 更新时间:2023-11-28 14:02:18 24 4
gpt4 key购买 nike

我有一种情况,我想使用多个具有客户端状态的服务器端控件。我想在事件发生时检查状态(例如各种点击),当状态达到我想要的位置时,我想回发到服务器并进行一些处理。

特别是,在我想要进行回发之前,我需要确保至少有 3 个不同的控件具有选择。由于没有启动回发的特定控件,我只想捕获客户端的选择事件,然后调用 __doPostBack() (或类似的东西)来启动处理。所以我禁用了所有服务器端事件,关闭了自动回发,并连接了一些 JavaScript 来处理这个问题。

我已经编写并运行了所有客户端代码,但是我似乎无法让服务器端识别回发。我正在重写 RaisePostBackEvent,并检查 eventArgument 中的自定义参数。这不起作用,因为 RaisePostBackEvent 从未被调用。

当我启用自动回发(例如,Telerik Radgrid OnSelectChanged 服务器端事件)时,此方法有效。

关于处理这个问题的最佳方法有什么建议吗?

更新:

当要求提供示例代码时,它与我上面所说的完全一样。不是火箭科学。

Javascript:

function CheckState(source, eventArgs) {
// logic to test state of controls
__doPostBack("", "DoMyWork:");
}

然后在后面的代码中我有:

protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
if (eventArgument.IndexOf("DoMyWork") != -1)
{
// do my server side work.
}
}

解决方案:

因为这有点令人困惑..我只想说我的解决方案是什么。

我使用了回发中涉及的控件之一,并使用它的 UniqueID 作为控件参数,然后使用我的方法作为事件。

最佳答案

如果您调用不带参数的 __doPostBack(),asp.net 无法确定哪个控件触发了该事件,因此无法确定要触发哪个事件。您需要将控件的名称作为参数添加到 __doPostBack() 中,并且如果不需要,可以将其设置为 null

__doPostBack('textbox1','')  //no arguments

__doPostBack('textbox1','12')

您可以像这样读取从代码后面传入的参数:

Dim arg As String = Request("__EVENTARGUMENT") 

关于javascript - 没有控制上下文的回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com