好的,我有一个由GridView制作的表,并附加了一个tableorter,它工作得很好。
然后我把它放在一个updatepanel中,并添加了代码以在回发时重新绑定它,这是我的脚本:
function loadEvents() { $("table[id$='gv']").tablesorter(); }
$(document).ready(function() { loadEvents(); });
function reBind() {
if (Sys.WebForms.PageRequestManager) {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() { loadEvents(); });
}
}
哪个效果很好,我加载了gridview,排序工作。
这继续,每隔一次点击......任何想法?
答案 0 :(得分:-1)
您的问题听起来像服务器端问题 - 排序仅在表绑定到同一请求后才有效。否则,排序的事件连接无法找到任何内容。
当然 - 如果你已经绑定了表格,那么它已经被排序了 - 所以现在你必须再次获取数据。
这类问题是可怕的.Net页面事件模型的常见问题。
最简单的解决方法是确保在加载viewstate之后但在事件触发之前,您的表在ajax回发上反弹,然后在事件触发后再次获取数据。问题是,你的数据已经两次了。
更好的解决方法是避免在任何动态页面元素中使用.Net的事件连接。
.Net页面事件模型的这些类型的问题是对MVC如此关注的部分原因。