我有一个数据绑定asp:GridView
:
<asp:GridView ID="gridUsers" runat="server" ShowHeaderWhenEmpty="True" Width="100%" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="UserGUID" HeaderText="UserGUID" SortExpression="UserGUID" Visible="False" />
<asp:HyperLinkField DataNavigateUrlFields="UserGUID" DataNavigateUrlFormatString="~\UserManagement\UserProperties.aspx?userGuid={0}" DataTextField="Username" HeaderText="User name" SortExpression="Username" />
<asp:BoundField DataField="Fullname" HeaderText="Full name" SortExpression="Fullname" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description"/>
<asp:BoundField DataField="Email" HeaderText="E-mail" SortExpression="Email"/>
<asp:BoundField DataField="IsActive" HeaderText="Active" SortExpression="IsActive" Visible="False" />
<asp:BoundField DataField="AuthenticationType" HeaderText="Account type" SortExpression="AuthenticationType" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:db %>"
SelectCommand="SELECT UserGUID, Username, Fullname, Description, Email, IsActive, AuthenticationType FROM Users WHERE IsActive = 1 ORDER BY Username">
</asp:SqlDataSource>
使用相应的代码隐藏:
public partial class FooItToHoo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
当我浏览到页面时,网格可以正确填充:
但是当我返回然后前进(或导航到另一个页面并返回)时,网格是空的:
如果我按 F5,页面会刷新,并且网格存在并填充:
我究竟做错了什么?
更新:我的页面的初始请求没有被缓存;服务器的响应是:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 13 Jun 2012 13:16:32 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 53219
Connection: Close
在提供的htmlasp:GridView
中呈现内容:
导航离开然后返回,没有服务器请求;所以页面必须从缓存中提供。
ASP.net 在做什么,呈现的页面包含内容,但“缓存”页面不包含内容?