FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 5844|回复: 4

【已解决】RegionPanel嵌套Grid全选问题

[复制链接]
发表于 2017-9-18 16:44:05 | 显示全部楼层 |阅读模式
本帖最后由 SwordElf 于 2017-9-20 09:04 编辑

RegionPanel嵌套具有TemplateField(内含checkbox),如AppBox的角色权限,点击全选时,无法选中所有checkbox。经测试,如果Grid未嵌套到RegionPanel,没问题,如果嵌套到RegionPanel,则无法选中全部checkbox。

本帖子中包含更多资源

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

x
发表于 2017-9-18 20:30:25 | 显示全部楼层
本帖最后由 shihahayue 于 2017-9-18 20:33 编辑

我下班看了一眼,由于使用了RegionPanel,导致Grid默认view变化,Extjs自动启用滚动渲染,会把Grid滚动条之外的数据延迟渲染,渲染后会触发viewConfig.getRowClass方法,返回FineUI自自定义样式'f-grid-row'。
解决方法有很多种,比如关闭滚动渲染,这样可能会影响效率,再比如获取渲染完成事件,在事件后判断是否是全选或者上一次的选中状态,再执行一遍。这个事件有很多因为在渲染后触发了一堆事件,我试了一个itemadd事件,判断机制和缓存你自己写吧。
  1.             grid.getView().on('itemadd', function (records,index) {
  2.                      selectCheckbox(true);//测试
  3.                      //写判断方法 判断该行选中状态重新选中
  4.             });
复制代码
这个问题比较深了是Extjs的问题,我也不太会了,还是看老大是怎么解决的吧

本帖子中包含更多资源

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

x
发表于 2017-9-19 17:01:06 | 显示全部楼层
shihahayue 发表于 2017-9-18 20:30
我下班看了一眼,由于使用了RegionPanel,导致Grid默认view变化,Extjs自动启用滚动渲染,会把Grid滚动条之 ...

最简单的办法是关闭滚动渲染,之前的版本 extjs v4.x 应该是没有这个东西的,不也正常工作,只要表格单页的数据量不大就行。
 楼主| 发表于 2017-9-20 08:54:07 | 显示全部楼层
本帖最后由 SwordElf 于 2017-9-20 08:56 编辑

经测试,解决办法为重新设置bufferedRenderer的ViewSize,设置为足够大即可:
  1. F(gridID).bufferedRenderer.setViewSize(100000);
复制代码

发表于 2017-9-20 10:44:09 | 显示全部楼层
SwordElf 发表于 2017-9-20 08:54
经测试,解决办法为重新设置bufferedRenderer的ViewSize,设置为足够大即可:

这个好使啊,当时试了,让我注释了,可能是数写少了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-28 16:37 , Processed in 0.051834 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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