2015-05-20 3 views
0

У меня есть GridView, который имеет пейджинг, но когда я нажимаю на странице 2 - обновления страницы и возвращает первую страницу и ссылка на эту страницу, также остается на странице 1.Gridview подкачки с помощью Datatable - не работает

Любая помощь будет действительно оценили :)

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
onpageindexchanging="GridView1_PageIndexChanging" 
onrowcommand="GridView1_RowCommand" AutoGenerateColumns="False" 
onrowdatabound="GridView1_RowDataBound"> 
<Columns> 
<asp:BoundField DataField="Sequence" HeaderText="Sequence" HeaderStyle- 
Width="10%"/> 
<asp:TemplateField HeaderStyle-Width="90%"> 
<ItemTemplate> 
<asp:Label ID="lblTitle" runat="server" Text='<%# Eval("Title") %>' Font- 
Strikeout='<%# ((Convert.ToBoolean(Eval("Obsolete")))?true:false) %>' /> 
</ItemTemplate> 
</asp:TemplateField> 

Codebehind: -

private void BuildResults() 
{ 
DataTable dt01 = obSectionDefinition.List(_criteria.AuditDefinitionGUID,  
_criteria.ParentGUID, _criteria.ShowObsolete); 

GridView1.PageSize = 20; 
ViewState["dt_data"] = dt01; 
GridView1.DataSource = dt01; 
GridView1.DataBind(); 
} 

PageIndexChanging: -

Нагрузка 0
public void GridView1_PageIndexChanging(object 
sender,GridViewPageEventArgse) 
{ 
     GridView x = ((GridView)sender); 
     GridView1.DataSource = ViewState["dt_data"]; 


     if (e.NewPageIndex > -1 && e.NewPageIndex <= x.PageCount) 
     { 
      x.PageIndex = e.NewPageIndex+1; 
     } 
     else 
     { 
      e.NewPageIndex--; 
     } 
    GridView1.DataBind(); 
} 

Страница: -

protected void Page_Load(object sender, EventArgs e) 
{ 
     if (!this.IsPostBack) 
     { 
       BuildResults(); 
     } 
    } 
+0

Почему ты прирост e.NewPageIndex ?? –

ответ

0

изменить PageIndexChanging код

public void GridView1_PageIndexChanging(object sender,GridViewPageEventArgse) 
{ 
    GridView1.DataSource = (DataTable)ViewState["dt_data"]; 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataBind(); 
} 
+0

Пробовал это и все еще не работает –

0
  1. Set AllowPaging =»True» Свойства GridView для включения подкачки

  2. Set PageSize собственности укажите, сколько записей будет отображаться на каждый стр.

HTML MARKUP:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="20" 
    onpageindexchanging="GridView1_PageIndexChanging" 
    onrowcommand="GridView1_RowCommand" AutoGenerateColumns="False" 
    onrowdatabound="GridView1_RowDataBound"> 
</asp:GridView> 

private void BuildResults() 
{ 
DataTable dt01 = obSectionDefinition.List(_criteria.AuditDefinitionGUID, _criteria.ParentGUID, _criteria.ShowObsolete); 

// GridView1.PageSize = 20; 
// ViewState["dt_data"] = dt01; 
GridView1.DataSource = dt01; 
GridView1.DataBind(); 
} 


public void GridView1_PageIndexChanging(object sender,GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex; 
    BuildResults(); 
} 
+0

Это тоже не работает - что-то мешает работе поискового вызова –

0

Я имел Response.Write на странице в другом месте, и это было причиной подкачки на провал - удалить его, и это теперь работает

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