找回密码
 立即注册

QQ登录

只需一步,快速开始

dllyzs

注册会员

11

主题

26

帖子

109

积分

注册会员

积分
109
dllyzs
注册会员   /  发表于:2020-11-24 16:56  /   查看:5162  /  回复:8
5金币
本帖最后由 dllyzs 于 2020-11-25 12:46 编辑

使用MultiRow(单条数据显示为两行或多行)时,可以根据CollectionView的数据索引和binding值获取对应的Cell么?
具体想法是:点击某一按钮后,根据数据索引和binding值选择表格中对应的cell(变成选择中),并修改对应Cell的颜色等信息。

最佳答案

查看完整内容

你好,可以实现,参考以下代码: 参考方法: 1、打开MultRow示例,替换app.js的代码,点运行2、查看控制台。 参考相关示例: 条件格式单元格

8 个回复

倒序浏览
最佳答案
最佳答案
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-24 16:56:38
来自 2#
你好,可以实现,参考以下代码:

  1. import 'bootstrap.css';
  2. import '@grapecity/wijmo.styles/wijmo.css';
  3. import './styles.css';
  4. //
  5. import * as wjCore from '@grapecity/wijmo';
  6. import * as wjInput from '@grapecity/wijmo.input';
  7. import * as wjMultiRow from '@grapecity/wijmo.grid.multirow';
  8. import { generateAppData } from './data';
  9. //
  10. document.readyState === 'complete' ? init() : window.onload = init;
  11. //
  12. function init() {
  13.     let appData = generateAppData();
  14.     let orders = appData.orders;
  15.     let layoutDefs = appData.layoutDefs;
  16.     let currentLayout = appData.layoutDefs.currentItem;
  17.     let multirow = new wjMultiRow.MultiRow('#multirow', {
  18.         itemsSource: orders,
  19.         layoutDefinition: currentLayout.def
  20.     });
  21.    
  22.     multirow.formatItem.addHandler(function (s, e) {
  23.         // center-align column headers
  24.         if (e.panel == s.columnHeaders) {
  25.             console.log(e);
  26.         }
  27.         // custom rendering for "Diff" columns
  28.         if (e.panel == s.cells) {
  29.             var col = s.columns[e.col];
  30.             if (e.row > 0 && (col.binding == 'email')) {
  31.                 console.log(e)
  32.             }
  33.         }
  34.     });

  35.     let ldComboBox = new wjInput.ComboBox('#ldComboBox', {
  36.         itemsSource: layoutDefs,
  37.         displayMemberPath: 'name'
  38.     });
  39.     updateDescription();
  40.     layoutDefs.currentChanged.addHandler(() => {
  41.         currentLayout = appData.layoutDefs.currentItem;
  42.         updateMultirow();
  43.         updateDescription();
  44.     });
  45.     //
  46.     function updateMultirow() {
  47.         multirow.layoutDefinition = currentLayout.def;
  48.     }
  49.     //
  50.     function updateDescription() {
  51.         wjCore.setText(document.querySelector('#desc'), currentLayout.description);
  52.     }
  53. }
复制代码


参考方法:
1、打开MultRow示例,替换app.js的代码,点运行2、查看控制台。

参考相关示例:
条件格式单元格
回复 使用道具 举报
dllyzs
注册会员   /  发表于:2020-11-25 09:20:40
3#
非常感谢回答,但是这个好像不是我的问题的解决方案。。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-25 09:45:05
4#
您好,很抱歉没有能理解你的思路,我的想法是,在下图代码处,可以通过添加自己的逻辑来实现实时修改单元格样式:


不知道这样能不能实现你的需求?如果不能,能否举例完整说明一下您的需求逻辑呢?

本帖子中包含更多资源

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

x
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-25 09:45:07
5#
您好,很抱歉没有能理解你的思路,我的想法是,在下图代码处,可以通过添加自己的逻辑来实现实时修改单元格样式:


不知道这样能不能实现你的需求?如果不能,能否举例完整说明一下您的需求逻辑呢?
回复 使用道具 举报
dllyzs
注册会员   /  发表于:2020-11-25 10:58:55
6#
KevinChen 发表于 2020-11-25 09:45
您好,很抱歉没有能理解你的思路,我的想法是,在下图代码处,可以通过添加自己的逻辑来实现实时修改单元格 ...
可能是我写的不是很清楚。
我的意思不是在数据加载的时候,是在表格自身以外的某个事件或者方法中通过数据的数据行索引和binding值来找到对应的单元格。
实际业务是将数据提交到后台后,在进行数据处理时发现有数据错误,返回到前台后需要将错误的数据标出出来。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-25 12:30:51
7#
明白了,抱歉目前这个功能暂不支持,会向产品组提出需求,感谢您的反馈~
回复 使用道具 举报
dllyzs
注册会员   /  发表于:2020-11-25 12:45:00
8#
感谢回答。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-25 13:32:15
9#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部