2009-09-23 192 views
3

我有一个asp.net C#web应用程序。其中我有一个gridview。 gridview从数据库中获取搜索结果。有时会有很多结果,所以我想使用分页。下面是我的尝试:gridview_paging搞砸了

 protected void grdResults_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     grdResults.PageIndex = e.NewPageIndex; 
     grdResults.DataBind(); 
    } 

出于某种原因,当我点击一个页码,它让我看到EmptyDataText(有没有记录显示)。什么代码会起作用? 请帮忙。

谢谢

回答

0

您需要调用数据绑定之前重新分配你的数据源grdResults()。

+0

仅当它尚未在标记或Load事件中声明时。你有ViewState被禁用?如果没有,我不认为你需要重新绑定数据,除非你的数据源只包含显示的记录(并且省略了其他页面上的记录)。 –

+0

你是对的。我不需要重新绑定数据。但现在,它不会更改页面,直到我点击两次页码... – zohair

1

尝试在NeedDataSource事件中分配数据源。

干杯。

0

试试这个代码将absoloutly工作:

protected void GV_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 

    GV.PageIndex = e.NewPageIndex; 
    BindGrid(); 
} 

    public override void BindGrid() 
{ 
    query = new CommonQueries(); 
    GV.DataSource = query.getAllBooks(); 
    GV.DataBind(); 
} 

问题与您的代码是你did'nt数据源重新分配给你的GridView!