Gridview控件和分页

本文关键字:分页 控件 Gridview | 更新日期: 2023-09-27 18:15:23

我有一个gridview在后端代码中填充。我现在正在尝试实现分页,但是当我尝试我的方式时,我什么也得不到。下面是我的代码:

public void generateTable()
{
    conn.ConnectionString = connString;
    SqlCommand comm = new SqlCommand("ViewBusinessInfo", conn);
    comm.CommandType = CommandType.StoredProcedure;
    comm.CommandTimeout = 2;
    try
    {
        conn.Open();
        SqlDataReader rdr = comm.ExecuteReader();
        if (rdr.HasRows)
        {
            gvAssociation.DataSource = rdr;
            gvAssociation.DataBind();
            gvAssociation.AllowPaging = true;
            gvAssociation.PageSize = 10;
            rdr.Close();
        }
        else
        {
            lblResult.Text = "No businesses found.";
            lblResult.Visible = true;
        }
    }
    catch
    {
    }
    finally
    {
        conn.Close();
    }
}

谁能建议我做错了什么,我不能在gridview分页?提前感谢Laziale

Gridview控件和分页

gridview的allowPaging和pagesize属性可以在.aspx中添加,其中gridview标签存在。

<asp:GridView ID="gridView" OnPageIndexChanging="gridView_PageIndexChanging"  AllowPaging="True" pagesize="10" runat="server" />

此外,为了使分页链接工作,您必须在gridview的gridview_PageIndexChanging事件中添加以下代码:

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

希望对大家有帮助

不能在DataReader中使用分页。您应该使用DataAdapter将数据填充到Dataset或Datatable中。像这样:

 SqlCommand myCommand = new SqlCommand("ViewBusinessInfo", conn);
 SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand))
 DataTable dt = new DataTable();
 myAdapter.Fill(dt);
 ...

声明性地设置AllowPagingPageSize,或者在调用DataBind()之前设置。