2012-05-11 84 views
2

我想从数据库中拉出100条记录中的10条并放入gridview(这里没有数据源对象)。手动gridview分页

我如何启用gridview附带的分页?我知道总记录是100我可以用它来激活分页吗?

我知道我可以用DataSource对象很容易地做到这一点,但只是想知道我是否可以完全手动地完成GridView。

标记

<form id="form1" runat="server"> 
<div> 

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
     AllowSorting="True" onpageindexchanging="GridView1_PageIndexChanging" 
     onsorting="GridView1_Sorting"> 
    </asp:GridView> 

</div> 
</form> 

代码隐藏

protected void Page_Load(object sender, EventArgs e) 
{ 
    GridView1.DataSource = GetCustomers(); 
    GridView1.DataBind(); 
} 

强大的文本

+0

为什么不能在GridView使用内置分页。为GridView设置PageSize为10,并为数据源提取所有100条记录 –

+2

,因为在数据访问时,我希望一次只抽取10条记录 – Rod

+0

请看相关主题 - http://stackoverflow.com/questions/4966799/如何到添加分页功能于数据列表,在-ASP网 – adatapost

回答

2

试试这个:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.IsPostback) {BindData();} 
} 
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.DataSource = GetCustomers(); 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataBind(); 

} 

void BindData() 
{ 
    GridView1.DataSource = GetCustomers(); 
    GridView1.DataBind(); 

} 

你也需要把它添加到GridView的标记:

OnPageIndexChanging="GridView1_PageIndexChanging"