Gridview在浏览时仍然显示,然后返回

问题描述:

我相信这不是一个独特的问题,但我正在绘制一个空白(星期一早上)如何解决它。Gridview在浏览时仍然显示,然后返回

在我的导航菜单上,用户使用DDL打开一个页面,从下拉菜单中选择一条记录,在Gridview中打开一行,显示几个字段。用户可以点击编辑和更新两个字段,当然也可以选择取消,或者从显示Gridview中新记录的下拉列表中选择另一条记录。

这一切工作正常。

问题是当用户转到导航菜单并转到另一页然后回到第一页时,正在查看的最后一条记录仍显示在Gridview中,而不是仅显示DDL并等待选择。就好像页面加载事件不会再次触发一样(事实上并非如此)。我需要它作为初始加载启动,以便'If Not ISPostback Then'逻辑正确启动。

看起来页面被缓存,只是重新加载或重新显示,是否有任何事件发生或是这个浏览器?

感谢您的任何想法。

+0

由于视图状态,没有代码示例,我再次看到它的声音我只能想象当用户单击另一个导航链接时需要做些什么(重置网格视图) –

+0

嗨@尼克,对不起并不是很多代码,它非常基本。你可以向我解释如何重置导航点击gridview? – htm11h

+0

这听起来像是一个浏览器/缓存问题。你有没有设置NoCache等? 'Response.Cache.SetCacheability(HttpCacheability.NoCache);' – GalacticCowboy

您应该确保您的页面不会被IIS和最终用户的浏览器缓存。

为了确保页面不会被IIS或客户端浏览器缓存,您可以将以下指令添加到页面顶部:

<%@ OutputCache location="None" %> 

可以在MSDN找到更多的信息,但是这与在响应中设置缓存能力相同,除了它是声明性的,我个人比较喜欢。

作为替代方案,如果你不希望有任何缓存的页面,则可以添加以下部分的web.config的system.web节:也可以找到关于此

<caching> 
    <outputCache enableOutputCache="false" enableFragmentCache="false" omitVaryStar="true" /> 
    </caching> 

更多细节在MSDN

+0

我在页面指令中添加了并且没有运气。当我离开另一页面并返回到原始页面时,gridview仍然显示在我离开页面时正在查看的最后一条记录中。无论我查看多少其他页面,至少不超过10个随机站点。 – htm11h

+0

但我确实喜欢它停止浏览器后退按钮问题。谢谢你解决了我正在处理的另一个问题。 – htm11h

+0

@ marc11h:好的,这实际上是非常重要的信息,因为这意味着该页面不应该被缓存。您可以使用fiddler(www.fiddle2.com)进行复查。如果页面被缓存,当你回到它时,HTTP状态将是304(我认为)。如果是这样的话,还有其他一些设置可以调整,以迫使页面立即过期,因为某些浏览器对缓存不是很好。否则,我们会知道问题出现在代码中,可以开始在那里查看。 –