数据库记录依赖分页

问题描述 投票:0回答:1
protected void GridviewArchived_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridviewArchived.PageIndex = e.NewPageIndex;
    DisplayArchivedNews();
}

private void DisplayArchivedNews()
{
    using (SqlConnection Con = new SqlConnection(connection1))
    {
        SqlCommand Cmd = new SqlCommand("udspGetArchivedNews", Con);
        Cmd.CommandType = CommandType.StoredProcedure;
        Con.Open();
        Cmd.ExecuteNonQuery();
        Con.Close();
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(Cmd);
        da.Fill(ds);
        DataTable dt = ds.Tables[0];
        int totalrecord = ds.Tables[0].Rows.Count;
        GridviewArchived.DataSource = ds;
        GridviewArchived.DataBind();
        if (totalrecord > 0)
        {
            for (int i = 0; i < totalrecord; i++)
            {
                if( File.Exists(Server.MapPath("~//NewsFolder//Page1//" + GridviewArchived.DataKeys[i].Values["News_ID"].ToString().ToString() + (".PDF"))))
                {
                    HyperLink link = new HyperLink();
                    link.Text = "Page1";
                    link.Target = "blank";
                    link.NavigateUrl = "~//NewsFolder//Page1//" + GridviewArchived.DataKeys[i].Values["News_ID"].ToString() + (".pdf");
                    GridviewArchived.Rows[i].Cells[2].Controls.Add(link);

                }

                }

                }


            }
        }

Pagesize 为 10,但是当总记录数大于 pagesize 时,会抛出以下异常:

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index.

有什么解决方案可以让记录自动转到下一页索引?

c# asp.net database pagination
1个回答
0
投票

为了在分页中显示 gridview 的记录,有两个选项

您可以使用 gridview 添加对象数据源并通过它显示分页,另一个选项是使用 jquery Datatable 进行分页。

© www.soinside.com 2019 - 2024. All rights reserved.