删除gridview列并使用JQuery保持状态回发

时间:2014-02-11 17:18:49

标签: jquery asp.net gridview

我正在使用ASP.NET构建应用程序。在该应用程序中,有一个数据库驱动的GridView。我在点击GridView标题时使用下面的JQuery代码来隐藏列。然而。它一直运行良好,直到我开始进行回发/刷新页面,其中UI / Gridview显然将自身重置为其初始状态。

所以我的问题是,在回发之间保存gridview状态和恢复jquery / UI状态的最佳做法是什么?

$(document).ready(function() {
       $("#<%=GridView1.ClientID%> th").filter("th:not(:first-child)").click(function() {
           var iIndex = $(this).closest("th").prevAll("th").length;
           $(this).parents("#<%=GridView1.ClientID%>").find("tr").each(function() {
              $(this).find("td:eq(" + iIndex + ")").remove();
              $(this).find("th:eq(" + iIndex + ")").remove();

           });
        });
    });

1 个答案:

答案 0 :(得分:0)

使用ASP.NET Web表单,在通过JavaScript更新DOM时,在回发之间保持UI一致性是很棘手的。

通常,您可以做的最好的事情是使用UpdatePanel并在服务器上进行所有更改。

另一种方法是使用隐藏字段跟踪您在客户端上所做的更改,这样您就可以在服务器上复制它们以保持一致。