0

GridView にページングがあり、以前はうまく機能していました。TextBox の「ユーザー キー」値でフィルタリングしていました。ただし、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();
}
4

2 に答える 2

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

sqldatasource フィルタリング式の代わりに dataview フィルターを使用する場合はこれですべてです。

于 2013-08-08T19:42:50.927 に答える
0

グリッド ビューのページング機能に filterig オプションを追加する必要があります。そうしないと機能しません。どのデータ ソースから情報を取得する必要があるかを伝える必要があるためです。

于 2012-05-07T07:48:08.353 に答える