我在与Telerik的radgrid控件的问题,我想使多个行选择。我也希望无论何时选择或取消选择的行去服务器。我创建了一个JavaScript函数来处理网格的客户端事件(OnRowSelected和OnRowDeSelected)。的功能如下所示:结果

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

另一个功能是非常相似,唯一的区别是,它发送字符串“rowDeselcted”而不是“rowSelected”。结果

在的Page_Load我检查,看看该请求是否是一个使用“的IsPostBack”,如果是,我检查,看看它是否是一个rowSelected或rowdeselected POST请求。结果

我的问题是,当我选择在我的网格中的第一胎,POST请求发生(预计),但是,当我选择第二行,GET请求发出后,它(显然)将导致的IsPostBack返回假。 结果

我缺少的是在这里吗?

,点击 修改我只是检查Request对象,发现列举HTTPMethod属性值是“POST”。为什么这是一个HTTP POST请求和的IsPostBack返回false ??

有帮助吗?

解决方案

您确定GET请求有正确的事件参数?点击 我认为有别的东西,正在GET请求。可能是一些AJAX魔术由电网,一些资源或AJAX调用PageMethod的或URL重写东西或类似的东西。

时的页面名称Default.aspx的什么一样?有时候,在某些浏览器(不记得细节)获得的图像左右(不记得确切的情况),使浏览器也打“samefolder /” URL,这将打开默认页面。

请与萤火请求,看看它告诉。

其他提示

该函数尊重<form>的动作。这里的__doPostBack做什么:

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

因此,它会做任何形式设置的事,这只是一般张贴在asp.net。

所以可以吗?是的,绝对的,为什么它在你的情况下发生的,我不知道。

在没有看到,网格生成,我假设它使用一个链接一个JavaScript的应用点击处理程序做回发的标记。我认为最有可能是罪魁祸首,那么,这是防止从处理器射击,从而使您能够将处理器中,采用这种情况下,GET锚的默认行为JavaScript错误。最好的建议我可以给你的是看它在Firefox / Firebug的,看看是否有在控制台中显示的任何错误。

这是说,你可能要构建应用程序,使其工作如果JavaScript被禁用,既纠正错误,并找出如何,如果你结束了一个GET请求作出响应。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top