我的 GridView 中有分页功能,以前工作得很好:它通过文本框中的“用户键”值进行过滤。 但是,由于我向 GridView 添加了过滤,分页出现了一些问题。 当用户尝试单击第 2 页时,它将显示过滤之前的 GridView 第 2 页。
有人可以帮助我吗? 下面是我的分页代码:
protected void gvPaging(object sender, GridViewPageEventArgs e)
{
DefaultData();
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
过滤代码:
protected void Button1_Command(object sender, EventArgs e)
{
string folderName = ConfigurationManager.AppSettings["folderPDF"].ToString();
string path = Server.MapPath("./");
string fpaths = path + folderName;
string[] filePath = Directory.GetFiles(fpaths, "*.pdf");
DataTable table = GetTable(filePath);
//var dataTable = (DataTable)GridView1.DataSource;
var dataView = table.DefaultView;
dataView.RowFilter = "folderName LIKE '" + DocSearch.Text.Trim() + "%'";
GridView1.DataSource = table;
GridView1.DataBind();
DocSearch.Text = "";
}
默认数据()
public void DefaultData()
{
string folderName = ConfigurationManager.AppSettings["folderPDF"].ToString();
string path = Server.MapPath("./");
string fullPath = path + folderName;
string[] filePaths = Directory.GetFiles(fullPath, "*.pdf");
DataTable table = GetTable(filePaths);
GridView1.DataSource = table;
GridView1.DataBind();
}
您需要将filterig选项添加到网格视图分页功能中,否则它将无法工作,因为您需要告诉它应该从哪个数据源获取信息
真的,我为这个问题搜索了很多,人们正在寻找我在这里找到的正确解决方案..嘿..只需首先在 gridview 中设置
enablepagingandcallback = false
,然后添加
Private Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
GridView1.PageIndex = e.NewPageIndex
GridView1.DataSource = SqlDataSource1
GridView1.DataBind()
End Sub
这就是全部,如果使用 dataview 过滤器,请使用它而不是 sqldatasource 过滤表达式