0

我在页面上有一些 asp.Net 列表框。在我的代码读取内容并构造了一个 sql 字符串后,我重定向到一个页面以显示结果。我想在离开页面之前清除列表框,以使其保持整洁,以防用户想要返回并进行另一次搜索。

我可以像这样清除列表框:

    'Clear all selections
    lstDescription.SelectedIndex = -1
    lstManufacturer.SelectedIndex = -1
    lstModelNumber.SelectedIndex = -1
    lstIssuedTo.SelectedIndex = -1
    lstLocation.SelectedIndex = -1

工作,很好,但如果我在下面添加这一行:

    Response.Redirect("grid.aspx")

框不清晰 - 我可以按后退按钮,它们仍然被选中。谁能告诉我为什么 asp.net 会这样?欢迎任何有关解决方法的建议。

4

2 回答 2

0

你试过这个:

lstDescription.SelectedItem = 无

让我知道你是否仍然面对它。

于 2013-05-08T02:23:07.913 回答
0

您遇到的是浏览器行为,而不是专门的 ASP.NET 行为。您正在重定向并随后通过后退按钮返回的页面正在由浏览器从缓存中提供,因此保留其设置。

您需要告诉浏览器不要这样做。将此代码添加到 Page_Load 中,IE 和 FireFox 将停止从缓存中提供服务:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    ...

所有浏览器都以不同的方式实现缓存,这超出了您的控制范围,因为它们都根据它们的规则和习语解释您在响应中发回的内容。例如,上面的代码片段适用于 IE 和 FireFox,但不适用于 Chrome。

于 2013-05-09T02:10:28.357 回答