FineUI 官方论坛

标题: 【已解决】Grid分页数设置问题 [打印本页]

作者: 一尺野光    时间: 2017-3-15 09:22
标题: 【已解决】Grid分页数设置问题
调整的代码:
private DataTable GetPagedDataTable(int APageIndex, int APageSize,bool ACheckPageCount=true)
    {
      string sSortField = OpDataGrid.SortField;
      string sSortDirection = OpDataGrid.SortDirection;
      if (sSortField != "")
      {
        sSortField = sSortField + " " + sSortDirection.ToLower();
      }
      else
      {
        sSortField = "WzBm";
      }

      string sSqlText = "Exec RY_PROC_WZZL_GetDataList_OnePage @APCount OUTPUT,@ARCount OUTPUT,@ASys_Where,@ASys_Order,"
        +"@ASys_PageIndex,@ASys_PageSize,@FlID,@UseFor";
      SqlParameter[] myParams = new SqlParameter[] {
        new SqlParameter("APCount",0),
        new SqlParameter("ARCount",0),        
        new SqlParameter("ASys_Where",""),
        new SqlParameter("ASys_Order",sSortField),
        new SqlParameter("ASys_PageIndex",APageIndex),
        new SqlParameter("ASys_PageSize",APageSize),
        new SqlParameter("FlID",_WzFlID),
        new SqlParameter("UseFor","")
      };

      myParams[0].Direction = ParameterDirection.Output;
      myParams[1].Direction = ParameterDirection.Output;

      DataTable myTempTable = DbHelper.ExecuteDataTable(sSqlText, myParams);

      //判断总页数,是否小于页索引
      if (Convert.ToInt32(myParams[0].Value) < APageIndex && ACheckPageCount)
      {
        //若是,则进行第二次获取,且返回
        return GetPagedDataTable(Convert.ToInt32(myParams[0].Value)-1, APageSize, false);
      }
      else
      {
        if (myParams[1].Value == DBNull.Value)
          OpDataGrid.RecordCount = 0;
        else
          OpDataGrid.RecordCount = Convert.ToInt32(myParams[1].Value);
        return myTempTable;
      }      
    }


作者: sanshi    时间: 2017-3-15 09:56


这个地方应该没问题,请检查示例:
http://fineui.com/demo_pro/#/dem ... esize_database.aspx

  1. protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);


  4.             BindGrid();
  5.         }
复制代码
  1. private void BindGrid()
  2.         {
  3.             // 1.设置总项数
  4.             Grid1.RecordCount = GetTotalCount();

  5.             // 2.获取当前分页数据
  6.             DataTable table = GetPagedDataTable(Grid1.PageIndex, Grid1.PageSize);

  7.             // 3.绑定到Grid
  8.             Grid1.DataSource = table;
  9.             Grid1.DataBind();
  10.         }
复制代码


设置 Grid1.PageSize 和 Grid1.RecordCount 后,会自动更新 Grid1.PageIndex,你再测试下






欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4