我正在使用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();
});
});
});
答案 0 :(得分:0)
使用ASP.NET Web表单,在通过JavaScript更新DOM时,在回发之间保持UI一致性是很棘手的。
通常,您可以做的最好的事情是使用UpdatePanel并在服务器上进行所有更改。
另一种方法是使用隐藏字段跟踪您在客户端上所做的更改,这样您就可以在服务器上复制它们以保持一致。