управление gridview и пейджинг asp.net - PullRequest
1 голос
/ 21 ноября 2011

У меня есть сетка, которая заполняется в коде бэкэнда. Сейчас я пытаюсь реализовать пейджинг, но когда я пытаюсь сделать это, я ничего не получаю. Вот мой кусок кода:

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

Кто-нибудь может посоветовать, что я делаю неправильно, и я не могу получить пейджинг в сетке? Спасибо заранее, Laziale

Ответы [ 3 ]

2 голосов
/ 22 ноября 2011

Свойство allowPaging и pagesize для gridview может быть добавлено в .aspx, где присутствует тег gridview.

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

Кроме того, чтобы ссылки на пейджинг работали, необходимо добавить следующеекод в gridview_PageIndexChanging событии сетки:

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

Надеюсь, что это полезно.

1 голос
/ 21 ноября 2011

Вы не можете использовать пейджинг с DataReader.Вы должны заполнить ваши данные в наборе данных или Datatable, используя DataAdapter.Как то так:

 SqlCommand myCommand = new SqlCommand("ViewBusinessInfo", conn);
 SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand))
 DataTable dt = new DataTable();
 myAdapter.Fill(dt);
 ...
0 голосов
/ 21 ноября 2011

Установите AllowPaging и PageSize декларативно или сделайте это перед вызовом DataBind().

...