筛选后的Gridview分页

问题描述 投票:0回答:2

我的 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();
}
asp.net gridview pagination
2个回答
0
投票

您需要将filterig选项添加到网格视图分页功能中,否则它将无法工作,因为您需要告诉它应该从哪个数据源获取信息


0
投票

真的,我为这个问题搜索了很多,人们正在寻找我在这里找到的正确解决方案..嘿..只需首先在 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 过滤表达式

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.