我在ASP.NET 4.5和4.5.1版本中发现了GridView寻呼机的问题.从.NET 2 - 4开始,我从未遇到过这样的问题.
到目前为止,我有一个gridview,我在后面的代码中填充数据,如下所示:
protected int CurrentPage { get { return SearchResults.PageIndex + 1; } }
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
BindGrid();
}
private void BindGrid()
{
int totalRowCount = 0;
SearchResults.DataSource = GetPageData(SearchResults.PageIndex, SearchResults.PageSize, out totalRowCount);
SearchResults.VirtualItemCount = totalRowCount;
SearchResults.DataBind();
}
private IEnumerable GetPageData(int start, int count, out int totalRowCount)
{
return Membership.GetAllUsers(start, count, out totalRowCount);
}
protected void SearchResults_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
SearchResults.PageIndex = e.NewPageIndex;
BindGrid();
}
Run Code Online (Sandbox Code Playgroud)
问题是如果我点击GridView的最后一页并尝试返回任何其他页面,我的PageIndexChanging不会触发.仅当最后一页与PageSize没有相同的记录计数时,才会出现此问题.行为是我的页面被重新加载,gridview的页面填充了空的数据行直到PageSize.VirtualItemCount正确表示总ItemCount.
标记,如果你在那里找到了什么:
<asp:GridView runat="server" CellPadding="0" …Run Code Online (Sandbox Code Playgroud)