找回密码
 立即注册

QQ登录

只需一步,快速开始

mtkj
金牌服务用户   /  发表于:2020-4-10 08:55  /   查看:3874  /  回复:9
demo已附上 待解决方案。

本帖子中包含更多资源

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

x

9 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-4-10 09:51:18
沙发
这个示例已经实现了获取下拉项的codes值,参考截图:

本帖子中包含更多资源

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

x
回复 使用道具 举报
mtkj
金牌服务用户   /  发表于:2020-4-10 11:11:17
板凳

这样子不行

本帖子中包含更多资源

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

x
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-4-10 14:24:54
地板
这是因为你绑定的数据源中,对应列的值不是obj,而是字符串,这样直接获取肯定是拿不到codes的值,因为单元格的值就是一个字符串。参考我附件的示例,其中关键代码有注释。

本帖子中包含更多资源

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

x
回复 使用道具 举报
mtkj
金牌服务用户   /  发表于:2020-4-14 15:43:32
5#
当复制粘贴的时候会出现取到的是一个字符串。如下图所示:

本帖子中包含更多资源

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

x
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-4-15 09:48:38
6#
这是因为单元格中保存的是一个json对象。
在JS中,JSON对象序列化字符串的结果取决于toString方法的返回值,

因此这里需要修改3处:

1、在下拉菜单的数据源中加上toString方法:



2、formatItem时需要判断内容是否是一个JSON字符串:


3、最后,不要忘记grid的数据源:


完整的示例Demo参考附件。

本帖子中包含更多资源

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

x
回复 使用道具 举报
mtkj
金牌服务用户   /  发表于:2020-4-16 10:05:35
7#
本帖最后由 mtkj 于 2020-4-16 16:36 编辑

第一个问题
formatItem 里面加了这串儿代码, 有值的单元格(小车号)就不好编辑了if (classname!="check"){
    if(sss){
        if(sss.names){
             e.cell.innerHTML = sss.names;
       }else{
          e.cell.innerHTML = isJSON(sss);
        }
     }
}




第二个问题
点击搜索,其他的下拉值显示没有问题,但是模糊搜索的就会变成object,帮忙瞅瞅






本帖子中包含更多资源

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

x
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-4-16 16:37:20
8#
自定义单元格添加了CustomerEditor,因此formatItem中才需要做定制解析,

如果是常规输入型单元格,不需要走这段逻辑,

所以用判断排除掉即可。参考代码:

  1.                                         if(s.columns[e.col].binding != "小车号"){
  2.                                                 var sss = s.getCellData(e.row, e.col);
  3.                                                 if (classname!="check"){
  4.                                                         if(sss){
  5.                                                                 if(sss.names){
  6.                                                                         e.cell.innerHTML = sss.names;
  7.                                                                 }else{
  8.                                                                         e.cell.innerHTML = isJSON(sss);
  9.                                                                 }
  10.                                                         }
  11.                                                 }
  12.                                         }
复制代码


本帖子中包含更多资源

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

x
回复 使用道具 举报
mtkj
金牌服务用户   /  发表于:2020-4-16 16:51:58
9#
7# 的那个第二个问题可以解决吗?模糊搜索,
  
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-4-16 17:37:29
10#
你好,过滤和排序的问题,参考这篇帖子试试:

https://gcdn.grapecity.com.cn/fo ... &extra=page%3D1

另外,新的问题推荐可以发新帖,以免漏看~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部