我有一个非常简单的asp页面:
Default.aspx的:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server"
AllowPaging="true" PageSize="4"
OnPageIndexChanging="GridView1_PageIndexChanging">
</asp:GridView>
</div>
</form>
</body>
</html>
Default.aspx.cs代码隐藏:
public partial class _Default : System.Web.UI.Page
{
private class FakeData
{
public string Name { get; set; }
public int Age { get; set; }
}
private List<FakeData> fakeData;
void InitFakeData()
{
fakeData = new List<FakeData>()
{
new FakeData(){ Age = 8, Name = "John"},
new FakeData(){ Age = 9, Name = "Carl"},
new FakeData(){ Age = 7, Name = "June"},
new FakeData(){ Age = 6, Name = "Ellie"},
new FakeData(){ Age = 9, Name = "Betty"},
new FakeData(){ Age = 10, Name = "Sam"},
new FakeData(){ Age = 5, Name = "Peter"},
};
}
void ShowData()
{
InitFakeData();
GridView1.DataSource = fakeData;
GridView1.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
ShowData();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
ShowData();
}
}
结果:
问题:
如果用户按下F5或刷新GridView页面索引2中的页面,Web浏览器将弹出以下消息:
确认表单重新提交 您要查找的页面使用了您输入的信息。返回重复可能会导致某些操作。你想继续吗?
问题:
如何避免浏览器显示该消息? (并在没有任何Web浏览器警告弹出的情况下显示GridView页面索引'n')
PS:使用Chrome,Firefox和IE11进行测试
答案 0 :(得分:2)
点击PageIndex
后,它会回发页面,即相当于表单提交。因此,当您refresh
时,它会再次张贴页面,并询问Confirm Form Re-submission
。
这相当于这种情况。 - Preventing form resubmission
提交表单,提交后刷新页面,它会询问相同的消息。这是浏览器的默认行为。
它与您的网格分页或其中的分页点击无关。它会被浏览器触发,以防止用户在发布整个网格数据时重复表单提交。