多次点击jQuery tablesorter扩展问题?

时间:2009-02-24 08:57:01

标签: asp.net jquery asp.net-ajax jquery-plugins tablesorter

好的,我有一个由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,排序工作。

  • 我点击了一个回发的按钮,它运行正常。
  • 我再次点击 并且第一次点击工作进行排序,整理,但它被卡住 - 那里 - 我可以更改列,但它永远不会排序?但是......
  • 我再次点击,工作正常

这继续,每隔一次点击......任何想法?

1 个答案:

答案 0 :(得分:-1)

您的问题听起来像服务器端问题 - 排序仅在表绑定到同一请求后才有效。否则,排序的事件连接无法找到任何内容。

当然 - 如果你已经绑定了表格,那么它已经被排序了 - 所以现在你必须再次获取数据。

这类问题是可怕的.Net页面事件模型的常见问题。

最简单的解决方法是确保在加载viewstate之后但在事件触发之前,您的表在ajax回发上反弹,然后在事件触发后再次获取数据。问题是,你的数据已经两次了。

更好的解决方法是避免在任何动态页面元素中使用.Net的事件连接。

.Net页面事件模型的这些类型的问题是对MVC如此关注的部分原因。