Gridview control and paging asp.net

I have a gridview that fills in the internal code. I'm trying to implement paging now, but when I try, I get nothing. Here is my code snippet:

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

Can anyone advise what I am doing wrong and I cannot get paging in gridview? thanks in advance, Laziale

+1
source share
3 answers

You cannot use paging with DataReader. You must populate your data in a dataset or in a Datatable using the DataAdapter. Something like that:

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

The allowPage and pagesize gridview properties can be added to .aspx, where the gridview tag is present.

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

, , gridview_PageIndexChanging gridview:

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

, .

+2

Ask AllowPagingand PageSizedeclaratively or do it before you call DataBind().

0
source

All Articles