【问题标题】:Browser back button creating problem浏览器后退按钮创建问题
【发布时间】:2009-12-17 19:44:00
【问题描述】:

我在页面上有一个动态生成的gridview,后面的代码也提供了排序。 现在我使用链接从页面 A 移动到页面 B,这也可以正常工作。 但是当我按下浏览器返回按钮并回到我的页面 A 并再次尝试排序时...页面 A 抛出异常...

有没有办法像我们正常编程按钮一样编程这个后退按钮..

谢谢

` 找不到列机器名。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

 Exception Details: System.IndexOutOfRangeException: Cannot find column machinename.

Source Error:

Line 519:                
Line 520:                //Sort the data.
Line 521:                dt.DefaultView.Sort = e.SortExpression + " " +       GetSortDirection(e.SortExpression);
Line 522:                GridView1.DataSource = Session["TaskTable"];
Line 523:                GridView1.DataBind();`

【问题讨论】:

  • 您能告诉我们您收到什么类型的错误吗?也许是堆栈跟踪和一些代码?
  • 一般来说,按下后退按钮会显示一个页面的缓存副本(因为浏览器通常会缓存)。如果您将绑定数据保留在视图状态中,则进行排序应该可以工作。此外,您可以使用 fiddler 并检查后退按钮之前和之后的请求,以查看它们是否相同。

标签: c# asp.net gridview sorting back-button


【解决方案1】:

页面 A 可能已缓存在您的浏览器中。单击返回时,您将获得此缓存版本。尝试强制浏览器不要将页面缓存在(页面 A)后面的代码中:

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now - new TimeSpan(1, 0, 0));
Response.Cache.SetLastModified(DateTime.Now);
Response.Cache.SetAllowResponseInBrowserHistory(false);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多