gridview控件和分页asp.net

时间:2011-11-21 17:22:50

标签: c# asp.net gridview paging

我有一个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

3 个答案:

答案 0 :(得分:2)

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();
}

希望这有用。

答案 1 :(得分:1)

您无法使用DataReader进行分页。您应该使用DataAdapter将数据填充到数据集或数据表中。像这样:

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

答案 2 :(得分:0)

以声明方式设置AllowPagingPageSize,或在拨打DataBind()之前执行此操作。