0
我的GridView
在其第二頁上執行搜索後不顯示正確的數據。尋呼之後GridVIew在搜索時不顯示所有數據
在填充GridView
並導航到PageIndexChanging
方法的第二頁後,GridView
在應用搜索過濾器後未刷新。它仍然在同一頁面上,但必須重新加載。
我的搜索調用下面的方法:
private void PopulatePeople()
{
lblAddError.Text = String.Empty;
if (ViewState["_message"] != null)
{
lblAddError.Visible = true;
lblAddError.Text = ViewState["_message"].ToString();
}
ViewState["_message"] = null;
int portfolio = int.Parse(ddlPortfolio.SelectedItem.Value);
ViewState["_portfolioID"] = portfolio;
string year = ddlYear.SelectedItem.Text;
string month = ddlMonth.SelectedItem.Text;
if (ViewState[_vsPeopleList] != null)
{
ViewState[_vsPeopleList] = null;
}
List<PeopleManagement> list = PeopleManagement.GetPeople(portfolio, year, month);
ViewState[_vsPeopleList] = list;
if(list.Count == 0)
{
gvPeople.Visible = false;
lblAddError.Visible = true;
lblAddError.Text = "No data available for current selection";
}
else
{
gvPeople.Visible = true;
gvPeople.DataSource = list;
gvPeople.DataBind();
}
}
此方法顯示基於搜索過濾器的數據。
我生成了2頁。第一頁有10條記錄,第二頁有1條記錄。
當分頁到第二頁並再次單擊搜索而不更改任何搜索過濾器時,GridView
仍在第2頁上顯示1條記錄。但是,它應該顯示第一頁有10條記錄。看起來,GridView
不會回到第1頁。
這是我PageIndexChanging
方法:
protected void gvPeople_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
lblAddError.Text = String.Empty;
List<PeopleManagement> list = (List<PeopleManagement>)ViewState[_vsPeopleList];
gvPeople.DataSource = list;
gvPeople.PageIndex = e.NewPageIndex;
gvPeople.DataBind();
}
我不知道什麼是錯的。試圖調試已經有一段時間了。 第一次搜索時以及頁面索引更改時,列表的記錄數量相同。應工作正常...
謝謝:)我自己解決不了的恥辱 – gene