如何在datagrid上每次显示20行?

时间:2010-11-27 20:39:20

标签: c# asp.net

我在gridview上显示数据:

SQL = "SELECT * FROM MEN ";
                    dsView = new DataSet();
                    adp = new SqlDataAdapter(SQL, Conn);
                    adp.Fill(dsView, "MEN");
                    adp.Dispose();
                    GridView1.DataSource = dsView.Tables["MEN"];
                    GridView1.DataBind();

但我在列表中看到......

如何显示每次只有10行?

我在asp.net和C#上工作

4 个答案:

答案 0 :(得分:2)

是的,使用分页数据网格。这是一种更好的做法。

编辑: <asp:DataGrid ID="DataGrid1" AllowPaging="True" />

在允许分页到datagrid之后,你需要做这样的事情......

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
    DataGrid1.CurrentPageIndex = e.NewPageIndex;
    DataGrid1.DataBind();
}

查看datagrids的示例here

答案 1 :(得分:0)

您可以添加LIMIT 10仅显示10行。 LIMIT 30, 10将显示10行,从第30行开始。

答案 2 :(得分:0)

1) 您也可以使用存储过程来实现此目的,有关详细信息,请参阅here。 RowNumber在SQL Server中扮演了神奇的角色,我不确定Oracle或其他数据库是否存在RowNumber。

 CREATE PROCEDURE [dbo].[sp_getzipcodes] 

     @start int = 0
 AS
 BEGIN
 Set NOCOUNT ON
 SELECT TOP 20 * FROM 
 (
      SELECT zip,city,state,latitude,longitude,timezone,dst,
      ROW_NUMBER() OVER (ORDER BY zip) AS num
      FROM dbo.zipcode
 ) AS a
 WHERE num > @start
END

2)

您可以使用分页,只需在网格标记处设置以下属性,

  AllowPaging="True" and PageSize="25". 

AllowPaging:分页设置。 PageSize:显示页面上的记录数。

答案 3 :(得分:0)

我做了一篇关于Telerik RadGrid的自定义分页和排序的博客文章。这些概念对ASP GridView仍然有效。

http://dotnetblogger.com/post/2010/03/07/RadGrid-with-Custom-Paging-Sorting-Filtering.aspx

基本上你想为网格添加分页,你可能不希望从数据库中返回所有“*”。

分页将显着提高数据库性能和站点速度。相信我。