ASP.NET 中 GridView 中的 PageIndexChanging

Posted

技术标签:

【中文标题】ASP.NET 中 GridView 中的 PageIndexChanging【英文标题】:PageIndexChanging in GridView in ASP.NET 【发布时间】:2011-06-07 15:03:54 【问题描述】:

我有一个用于显示数据集结果的 gridview。 问题是我在其中使用分页。但是当我点击页面 # 它说我还没有处理这个事件。需要重新绑定数据集???

谢谢

【问题讨论】:

【参考方案1】:

试试下面的代码:

protected void grdView_PageIndexChanging(object sender, GridViewPageEventArgs e)

    FillGrid();
    grdView.PageIndex = e.NewPageIndex;
    grdView.DataBind();

【讨论】:

谢谢..这行得通...我以前不知道这个页面索引会增加。 Viewstate 应该是首选以避免页面更改事件上过多的数据库调用【参考方案2】:

试试看

在页面加载中

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();

【讨论】:

【参考方案3】:

在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

【讨论】:

【参考方案4】:

你应该在绑定数据之前设置.PageIndex!否则,您将需要额外的点击,这实际上 加倍 BindData 方法调用。以下是我测试过的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

【讨论】:

以上是关于ASP.NET 中 GridView 中的 PageIndexChanging的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net 中处理 Gridview 控件中的文本框?

通过asp.net中的数据表在asp gridview中添加按钮列

从 ASP.NET GridView 更新中获取 textarea 中的文本

向导控件中的 Gridview 自定义分页在 asp.net 中无法正常工作

ASP.NET GridView 模板字段中的 CheckBox 在提交时不保留其值

如何使用 C# 从 ASP.NET 中的 SQL Server 数据库中检索和显示 GridView 中的值