我在GridView中有很多ServerName列表,所以我决定添加分页。数据显示第1页上的列表结果,但在第2页上,其余部分未显示任何内容。我在GridViewServer属性中已经有OnPageIndexChanging="GridViewServer_PageIndexChanging"
。请帮忙!这是后面的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();
}
答案 0 :(得分: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作为参数传递,可以使其更具可扩展性,但您还必须有其他参数以确保该方法检索正确的数据。
答案 1 :(得分:0)
这是一个关于自定义GridView分页的非常好的教程(带有示例代码)。这使得分页控件看起来像你在许多搜索引擎,论坛等上看到的熟悉的分页控件。
http://geekswithblogs.net/aghausman/archive/2009/05/18/custom-paging-in-grid-view.aspx
答案 2 :(得分:0)
每次页面索引更改时,您必须向GridViewServer提供数据源。 所以代码就像这样
protected void GridViewServer_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridViewServer.PageIndex = e.NewPageIndex;
GridViewServer.Datasource = MethodReturningDataTable();
GridViewServer.DataBind();
}