【问题标题】:Is it possible that __doPostBack() would ever send a GET request?__doPostBack() 是否有可能发送 GET 请求?
【发布时间】:2011-01-28 06:01:05
【问题描述】:

我在使用 Telerik RadGrid 时遇到问题,我想启用多行选择。只要选择或取消选择行,我也想转到服务器。我创建了一个 javascript 函数来处理 Grid 的客户端事件(OnRowSelected 和 OnRowDeSelected)。函数如下所示:

 function onOperationRowSelected(sender, eventArgs) {
            __doPostBack("<%=myControl.ClientID %>", "rowSelected:" + eventArgs.get_itemIndexHierarchical());
        }

另一个函数非常相似,唯一的区别是它发送字符串“rowDeselected”而不是“rowSelected”。

在 Page_Load 上,我使用“IsPostBack”检查请求是否是 Post 请求,如果是,我检查它是 rowSelected 还是 rowdeselected。

我的问题是,当我在网格上选择第一个 raw 时,会发生 Post 请求(这是预期的),但是,当我选择第二行时,会发出 GET 请求,这(显然)会导致 IsPostBack 返回错误的。

我在这里缺少什么?


编辑: 我刚刚检查了 Request 对象,发现 HttpMethod 属性值为“POST”。为什么是 HTTP POST 请求,IsPostBack 返回 false??

【问题讨论】:

    标签: asp.net telerik telerik-grid dopostback


    【解决方案1】:

    该函数尊重&lt;form&gt; 的操作。以下是 __doPostBack 的作用:

    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    

    所以它会执行表单设置的任何操作,通常只是在 asp.net 中发布。

    那么有可能吗?是的,当然,我不确定为什么会发生这种情况。

    【讨论】:

      【解决方案2】:

      在没有看到网格生成的标记的情况下,我假设它使用带有 javascript 应用点击处理程序的链接来执行回发。因此,我认为最可能的罪魁祸首是阻止处理程序触发的 javascript 错误,它为您提供了应用处理程序的锚点的默认行为,在本例中为 GET。我能给你的最好建议是在 Firefox/Firebug 中查看它,看看控制台中是否显示任何错误。

      也就是说,您可能希望构建应用程序,以便在禁用 javascript 时它可以正常工作,并纠正错误并弄清楚如果您最终收到 GET 请求时如何响应。

      【讨论】:

      【解决方案3】:

      您确定 GET 请求具有正确的事件参数吗?
      我认为还有其他东西正在发出 GET 请求。可能是该网格的一些 AJAX 魔法、一些资源或 AJAX PageMethod 调用或 URL 重写之类的东西。

      页面名称是 default.aspx 还是类似的名称?有时在某些浏览器中(不记得细节)获取图像左右(不记得确切情况)会使浏览器也点击“samefolder/”URL,从而打开默认页面。

      用 FireBug 检查请求,看看它告诉了什么。

      【讨论】:

      • 确实是网格隐藏的ajax调用,OnRowSelected首先触发OnRowDeselected,即当你选择一行时,之前选中的行触发OnRowDeselected,默认情况下会发出get请求。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多