部分页面回发中的动态Javascript

时间:2009-12-24 23:13:15

标签: jquery asp.net-ajax tablesorter

我正在使用tablesorter jQuery插件对我的表进行一些排序。我正在使用它的网站是在.Net 3.5中编程的,我正在使用ASP.NET AJAX和updatepanel来执行我的异步页面更新。

我遇到的问题是在使用表格分类器时,我有一些列要禁用排序。我有以下javascript代码,

function pageLoad(sender, args) {
        // Set table sorting in the load event so this takes care of partial page postbacks
        $$("gvRosters").tablesorter({
            sortList: [[0, 0]],
            widgets: ['zebra'],
            8: {
               // disable it by setting the property sorter to false
               sorter: false
            } 
        });
    }

我要隐藏的列是第9列,一切正常。我将此代码放在pageLoad函数中,以便它可以在部分回发上运行。问题是我有一个链接按钮,在页面上调用异步更新,更改我的表中的可见列。所以我需要隐藏的第9列成为需要隐藏的第12列。我不确定用于重新连接隐藏列的正确方法,使其显示为:

function pageLoad(sender, args) {
        // Set table sorting in the load event so this takes care of partial page postbacks
        $$("gvRosters").tablesorter({
            sortList: [[0, 0]],
            widgets: ['zebra'],
            11: {
               // disable it by setting the property sorter to false
               sorter: false
            } 
        });
    }

而不是部分回发。基本上我需要做的是在部分回发上再次运行此代码(它在pageLoad函数内部时已经运行)但我还需要动态更改运行的javascript代码以禁用正确列上的排序。我很感激您对此问题的任何见解。

1 个答案:

答案 0 :(得分:0)

创建2个javascript方法,

  1. 首页加载时的初始值(适用于9列),

  2. 下次修改你的cols(12个cols)。

  3. 最初直接从您的javascript代码调用方法1。在链接按钮的asyn回发中,您可以使用

    调用第二个javascript方法
    ScriptManager.RegisterStartupScript
    

    希望这有帮助。