我有一个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
答案 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)
以声明方式设置AllowPaging
和PageSize
,或在拨打DataBind()
之前执行此操作。