0

我在 GridView 中有很多 ServerName 列表,所以我决定添加分页。数据在第 1 页但在第 2 页显示列表结果,其余部分不显示任何内容。我已经OnPageIndexChanging="GridViewServer_PageIndexChanging"在 GridViewServer 属性中。请帮忙!这是后面的c#代码,

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

一个GridView绑定功能代码,

public void BindGridView()
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database_Shared_NotebookConnectionString"].ConnectionString);

        conn.Open();

        string sqlquery = ("SELECT * FROM tblServer");

        SqlCommand command = new SqlCommand(sqlquery, conn);

        SqlDataAdapter adp = new SqlDataAdapter(command);

        DataSet ds = new DataSet();

        adp.Fill(ds);

        GridViewServer.DataSource = ds.Tables[0];

        GridViewServer.DataBind();
    }
4

3 回答 3

2

您需要适当地设置 GridView 的数据源。如果数据源设置不正确,您不能只调用 DataBind。基本上它相当于将您的 GridView 绑定到 null (没有第 2 页)。我建议有一个负责此过程的私有方法,并且在您需要绑定时调用它。

private void BindGridViewServer()
{
    GridViewServer.DataSource = GetYourData();  // This should get the data
    GridViewServer.DataBind();
}

从您的事件中调用此方法:

protected void GridViewServer_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridViewServer.PageIndex = e.NewPageIndex;
    BindGridViewServer();
}

这可以通过将 GridView 作为参数传递来使其更具可扩展性,但是您还必须具有其他参数以确保该方法检索正确的数据。

于 2012-11-30T20:31:30.967 回答
0

这是一个关于自定义 GridView 分页的非常好的教程(带有示例代码)。这使得分页控件看起来像您在许多搜索引擎、论坛等上看到的熟悉的控件。

http://geekswithblogs.net/aghausman/archive/2009/05/18/custom-paging-in-grid-view.aspx

于 2012-11-30T20:35:07.743 回答
0

每次页面索引更改时,您都必须将数据源提供给 GridViewServer。所以代码会是这样的

protected void GridViewServer_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridViewServer.PageIndex = e.NewPageIndex;
    GridViewServer.Datasource = MethodReturningDataTable();
    GridViewServer.DataBind();
}
于 2012-11-30T20:49:40.237 回答