我在使用 telerik RadGrid 时遇到问题,我想启用多行选择。我还想在选择或取消选择一行时访问服务器。我创建了一个 JavaScript 函数来处理网格的客户端事件(OnRowSelected 和 OnRowDeSelected)。这些函数如下所示:
function onOperationRowSelected(sender, eventArgs) {
__doPostBack("<%=myControl.ClientID %>", "rowSelected:" + eventArgs.get_itemIndexHierarchical());
}
另一个函数非常相似,唯一的区别是它发送字符串“rowDeselcted”而不是“rowSelected”。
在 Page_Load 上,我使用“IsPostBack”检查该请求是否是 Post 请求,如果是,我检查它是否是 rowSelected 或 rowdeselected。
我的问题是,当我在网格上选择第一个原始数据时,会发生 Post 请求(这是预期的),但是,当我选择第二行时,会发出 GET 请求,这(显然)将导致 IsPostBack 返回 false。
我在这里缺少什么?
EDIT:我刚刚检查了Request对象,发现HttpMethod属性值为“POST”。为什么是 HTTP POST 请求,IsPostBack 返回 false?
该功能尊重<form>
。这是 __doPostBack 的作用:
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
因此,它会执行表单设置的任何操作,通常只是在 asp.net 中发布。
那么有可能吗?是的,绝对是的,我不确定为什么会发生在你的案例中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)