FineUI 官方论坛
标题: 【非BUG】Grid分页改变页大小行号可能BUG [打印本页]
作者: Farmer 时间: 2017-11-16 00:51
标题: 【非BUG】Grid分页改变页大小行号可能BUG
[attach]10754[/attach]
情景:当切换到最小页大小,然后切换到最后一页,再切换到最大页大小。
不知道是不是BUG?
1、F.RowNumberField().EnablePagingNumber(true)列就出现错误行号;
2、在表格子元素渲染时会获取到错误的页号,如Grid的F.RenderField().RendererFunction("***")中就不能正确获取页号。
老大,做了个空项目,能传吗?
作者: sanshi 时间: 2017-11-16 11:43
如果是已购买企业客户,请发空项目到客服QQ邮箱:2877408506@qq.com。
如果是FineUIMvc(基础版),请上传空项目
作者: Farmer 时间: 2017-11-16 13:07
[attach]10756[/attach]
[attach]10757[/attach]
[attach]10758[/attach]
[attach]10756[/attach]
[attach]10757[/attach]
[attach]10758[/attach]
作者: sanshi 时间: 2017-11-20 21:39
这个不是BUG,是你的代码问题。
先看下你的代码:
- [HttpPost]
- public ActionResult Grid1_DoPostBack(JArray Grid1_fields, int Grid1_pageIndex, int ddlGridPageSize)
- {
- var grid1UI = UIHelper.Grid("Grid1");
- grid1UI.DataSource(GetPagedData(Grid1_pageIndex, ddlGridPageSize), Grid1_fields);
- grid1UI.PageSize(ddlGridPageSize);
- return UIHelper.Result();
- }
复制代码
然后再看下官网示例代码:http://fineui.com/demo_mvc/#/dem ... emsPageSizeDatabase
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Grid1_ReBindGrid(JArray fields, int pageIndex, int pageSize)
- {
- var grid1 = UIHelper.Grid("Grid1");
- var recordCount = DataSourceUtil.GetTotalCount();
- // 1.设置总项数(数据库分页回发时,如果总记录数不变,可以不设置RecordCount)
- grid1.RecordCount(recordCount);
- // 2. 设置每页显示项数(每页记录数改变时,要设置PageSize)
- grid1.PageSize(pageSize);
- // 3.获取当前分页数据
- var dataSource = DataSourceUtil.GetPagedDataTable(pageIndex: pageIndex, pageSize: pageSize, recordCount: recordCount);
- grid1.DataSource(dataSource, fields);
- return UIHelper.Result();
- }
复制代码
发现问题没?是顺序问题,应该先设置PageSize,再更新DataSource,这个顺序很重要,因为FineUIMvc中这些函数最终都会生成JS脚本。
所以你的函数改为:
- [HttpPost]
- public ActionResult Grid1_DoPostBack(JArray Grid1_fields, int Grid1_pageIndex, int ddlGridPageSize)
- {
- var grid1UI = UIHelper.Grid("Grid1");
- grid1UI.PageSize(ddlGridPageSize);
- grid1UI.DataSource(GetPagedData(Grid1_pageIndex, ddlGridPageSize), Grid1_fields);
- return UIHelper.Result();
- }
复制代码
就好了。
作者: Farmer 时间: 2017-11-21 23:00
谢谢了!真还没注意到顺序上去!
作者: Farmer 时间: 2017-11-22 09:11
老大,帮看下APPBOXMVC的代码,原来仿照它写的,那是不是也存在这个问题呢,如AdminController中的UserList_DoPostBack动作:
- var grid1UI = UIHelper.Grid("Grid1");
- var pagingInfo = new PagingInfoViewModel
- {
- SortField = Grid1_sortField,
- SortDirection = Grid1_sortDirection,
- PageIndex = Grid1_pageIndex,
- PageSize = ddlGridPageSize
- };
- grid1UI.DataSource(UserList_GetData(pagingInfo, ttbSearchMessage, rblEnableStatus), Grid1_fields);
- grid1UI.RecordCount(pagingInfo.RecordCount);
- // 改变表格的分页记录数
- if (actionType == "changeGridPageSize")
- {
- grid1UI.PageSize(ddlGridPageSize);
- }
- return UIHelper.Result();
复制代码
作者: Farmer 时间: 2017-11-22 09:15
另,我运行了APPBOXMVC,好像是也存在这个问题。
作者: sanshi 时间: 2017-11-22 15:48
是的。设置DataSource要放到最后面
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) |
Powered by Discuz! X3.4 |