23

データセットの結果を表示するために使用しているグリッドビューがあります。問題は、ページングを使用していることです。しかし、ページ#をクリックすると、イベントを処理していないと表示されます。データセットを再バインドする必要がありますか?

ありがとう

4

4 に答える 4

34

次のコードを試してください。

protected void grdView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    FillGrid();
    grdView.PageIndex = e.NewPageIndex;
    grdView.DataBind();
}
于 2011-01-12T05:30:52.113 に答える
4

それを試してみてください

ページロードで

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        loadGrid();
    }
}

ページインデックスの変更

private void loadGrid()
{
    using (your_bankEntities context = new your_bankEntities()) //use your connection .edmx
    {
        var jmDados = (from jm in context.yourdbo  orderby jm.your fieldkey  
                         select new
                           {
                               jm.Field1,
                               jm.Field2,
                               jm.Field3,
                               jm.Field4,
                               ........ 
                               jm.n

                           }).ToList();
        GridView1.DataSource = jmDados;

        GridView1.DataBind();
    }
}

ページインデックスの変更

GridView1.PageIndex = e.NewPageIndex;

loadGrid();
于 2013-09-01T14:55:57.970 に答える
1

VB.netでは、C#とあまり違いはなく、各行の最後にあるセミコロンを削除するだけです。

Private Sub myGridview_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) Handles myGridview.PageIndexChanging

   LoadGridView() //Call your method to load the data into the grid.
   myGridview.PageIndex = e.NewPageIndex
   myGridview.DataBind()

End Sub
于 2015-10-07T14:37:07.713 に答える
1

データをバインドする前に.PageIndexを設定する必要があります。それ以外の場合は、BindDataメソッドの呼び出しを実際に2倍にする追加のクリックが必要になります。以下は私のテストしたvbコードです。

Private Sub GridViewL_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridViewL.PageIndexChanging

    GridViewL.PageIndex = e.NewPageIndex
    BindData()  ' your method to bind data to the grid
End Sub
于 2019-03-04T02:46:04.707 に答える