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

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

谢谢

【问题讨论】:

    标签: c# asp.net .net gridview page-index-changed


    【解决方案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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-11
          • 1970-01-01
          • 1970-01-01
          • 2023-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-05
          相关资源
          最近更新 更多