Asp.net 是否有可能uu doPostBack()会发送GET请求?

Asp.net 是否有可能uu doPostBack()会发送GET请求?,asp.net,telerik,telerik-grid,dopostback,Asp.net,Telerik,Telerik Grid,Dopostback,telerik RadGrid有问题,我想启用多行选择。我还想在选择或取消选择行时转到服务器。我创建了一个javascript函数来处理网格的客户端事件(OnRowSelected和OnRowSelected)。函数如下所示: function onOperationRowSelected(sender, eventArgs) { __doPostBack("<%=myControl.ClientID %>", "rowSelected:" + eventA

telerik RadGrid有问题,我想启用多行选择。我还想在选择或取消选择行时转到服务器。我创建了一个javascript函数来处理网格的客户端事件(OnRowSelected和OnRowSelected)。函数如下所示:

 function onOperationRowSelected(sender, eventArgs) {
            __doPostBack("<%=myControl.ClientID %>", "rowSelected:" + eventArgs.get_itemIndexHierarchical());
        }
已选择操作行上的函数(发送方、事件参数){ __doPostBack(“,”行选定:“+eventArgs.get_itemIndexHierarchical()); } 另一个函数非常类似,唯一的区别是它发送字符串“rowDeselcted”而不是“rowSelected”

在页面_Load上,我使用“IsPostBack”检查请求是否为Post请求,如果是,我检查它是rowSelected还是rowSelected

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

我错过了什么



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

该函数尊重
的操作。以下是doPostBack的功能:

function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
因此,它将执行表单设置要执行的任何操作,这通常是asp.net中的post


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

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


也就是说,您可能希望构建应用程序,使其在禁用javascript的情况下工作,同时纠正错误,并确定如果最终出现GET请求,该如何响应。

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

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


使用FireBug检查请求,看看它说明了什么。

您可能想查看此论坛帖子:。当第一个事件触发时,是否可能正在加载一个url为空的链接?事实上,这是网格的一个隐藏ajax调用,OnRowSelected首先触发OnRowDelected,也就是说,当您选择一行时,先前选择的行触发OnRowUnselected,默认情况下会发出get请求。