2016-02-24 4 views
0

Мой GridView заполнен определенными критериями фильтра.GridVIew не обновляется после подкачки

У меня есть PageIndexChanging Событие, чтобы выполнить разбиение на страницы моих данных.

protected void gvPeople_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    lblAddError.Text = String.Empty; 
    List<People> list = (List<People>)ViewState[_vsPeopleList]; 
    gvPeople.DataSource = list; 
    gvPeople.PageIndex = e.NewPageIndex; 
    gvPeople.EditIndex = -1; 
    gvPeople.DataBind(); 
} 

После этого я Search выполнение проектно без изменения критериев фильтрации.

protected void btnPeopleSearch_Click(object sender, CommandEventArgs e) 
{ 
    if(e.CommandName.Equals("Search")) 
    { 
     PopulatePeople(); 
    } 
} 

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; 

    List<People> list = People.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(); 
    } 
} 

Я должен получить все данные в GridView как я имел в своем распоряжении пейджинга на следующей странице. Однако моя страница не обновляется, чтобы отображать все данные, она отображает только данные для этого индекса страницы, однако мой список имеет число, равное количеству записей, заполненных из базы данных. Кроме того, если я меняю фильтр поиска, данные отображаются правильно.

Что я делаю неправильно?

ответ

0

Похоже, что событие gvHolidays_PageIndexChanging связано с какой-либо другой сеткой, поскольку код, написанный внутри нее, предназначен для сетки gvPeople.

Если нет, попробуйте следующее.

//Write the following code inside gridviews PageIndexChanging event. 
gvPeople.PageIndex = e.NewPageIndex; 
gvPeople.EditIndex = -1; 
gvPeople.SelectedIndex = -1; 

//Write the following code inside gvHolidays_PageIndexChanged event. 
lblAddError.Text = String.Empty; 
List<People> list = (List<People>)ViewState[_vsPeopleList]; 
gvPeople.DataSource = list; 
gvPeople.DataBind(); 
+0

По-прежнему та же проблема – gene

+0

Можете ли вы разместить часть кода aspx в gridview? –

Смежные вопросы