FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 4708|回复: 7

【非BUG】Grid分页改变页大小行号可能BUG

[复制链接]
发表于 2017-11-16 00:51:32 | 显示全部楼层 |阅读模式

情景:当切换到最小页大小,然后切换到最后一页,再切换到最大页大小。
不知道是不是BUG?
           1、F.RowNumberField().EnablePagingNumber(true)列就出现错误行号;
           2、在表格子元素渲染时会获取到错误的页号,如Grid的F.RenderField().RendererFunction("***")中就不能正确获取页号。
老大,做了个空项目,能传吗?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2017-11-16 11:43:41 | 显示全部楼层
如果是已购买企业客户,请发空项目到客服QQ邮箱:2877408506@qq.com

如果是FineUIMvc(基础版),请上传空项目
 楼主| 发表于 2017-11-16 13:07:43 | 显示全部楼层








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2017-11-20 21:39:33 | 显示全部楼层

这个不是BUG,是你的代码问题。

先看下你的代码:
  1. [HttpPost]
  2.         public ActionResult Grid1_DoPostBack(JArray Grid1_fields, int Grid1_pageIndex, int ddlGridPageSize)
  3.         {

  4.             var grid1UI = UIHelper.Grid("Grid1");

  5.             grid1UI.DataSource(GetPagedData(Grid1_pageIndex, ddlGridPageSize), Grid1_fields);

  6.             grid1UI.PageSize(ddlGridPageSize);

  7.             return UIHelper.Result();
  8.         }
复制代码


然后再看下官网示例代码:http://fineui.com/demo_mvc/#/dem ... emsPageSizeDatabase
  1. [HttpPost]
  2. [ValidateAntiForgeryToken]
  3. public ActionResult Grid1_ReBindGrid(JArray fields, int pageIndex, int pageSize)
  4. {
  5.         var grid1 = UIHelper.Grid("Grid1");

  6.         var recordCount = DataSourceUtil.GetTotalCount();

  7.         // 1.设置总项数(数据库分页回发时,如果总记录数不变,可以不设置RecordCount)
  8.         grid1.RecordCount(recordCount);

  9.         // 2. 设置每页显示项数(每页记录数改变时,要设置PageSize)
  10.         grid1.PageSize(pageSize);

  11.         // 3.获取当前分页数据
  12.         var dataSource = DataSourceUtil.GetPagedDataTable(pageIndex: pageIndex, pageSize: pageSize, recordCount: recordCount);
  13.         grid1.DataSource(dataSource, fields);

  14.         return UIHelper.Result();
  15. }
复制代码


发现问题没?是顺序问题,应该先设置PageSize,再更新DataSource,这个顺序很重要,因为FineUIMvc中这些函数最终都会生成JS脚本。

所以你的函数改为:
  1. [HttpPost]
  2. public ActionResult Grid1_DoPostBack(JArray Grid1_fields, int Grid1_pageIndex, int ddlGridPageSize)
  3. {
  4.         var grid1UI = UIHelper.Grid("Grid1");

  5.         grid1UI.PageSize(ddlGridPageSize);

  6.         grid1UI.DataSource(GetPagedData(Grid1_pageIndex, ddlGridPageSize), Grid1_fields);

  7.         return UIHelper.Result();
  8. }
复制代码


就好了。


 楼主| 发表于 2017-11-21 23:00:42 | 显示全部楼层
谢谢了!真还没注意到顺序上去!
 楼主| 发表于 2017-11-22 09:11:46 | 显示全部楼层
老大,帮看下APPBOXMVC的代码,原来仿照它写的,那是不是也存在这个问题呢,如AdminController中的UserList_DoPostBack动作:
  1. var grid1UI = UIHelper.Grid("Grid1");
  2.             var pagingInfo = new PagingInfoViewModel
  3.             {
  4.                 SortField = Grid1_sortField,
  5.                 SortDirection = Grid1_sortDirection,
  6.                 PageIndex = Grid1_pageIndex,
  7.                 PageSize = ddlGridPageSize
  8.             };
  9.             grid1UI.DataSource(UserList_GetData(pagingInfo, ttbSearchMessage, rblEnableStatus), Grid1_fields);
  10.             grid1UI.RecordCount(pagingInfo.RecordCount);
  11.             // 改变表格的分页记录数
  12.             if (actionType == "changeGridPageSize")
  13.             {
  14.                 grid1UI.PageSize(ddlGridPageSize);
  15.             }

  16.             return UIHelper.Result();
复制代码

 楼主| 发表于 2017-11-22 09:15:19 | 显示全部楼层
另,我运行了APPBOXMVC,好像是也存在这个问题。
发表于 2017-11-22 15:48:45 | 显示全部楼层
Farmer 发表于 2017-11-22 09:11
老大,帮看下APPBOXMVC的代码,原来仿照它写的,那是不是也存在这个问题呢,如AdminController中的UserList ...

是的。设置DataSource要放到最后面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-3-29 20:00 , Processed in 0.049026 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表