mtkj 发表于 2020-4-10 08:55:53

下拉框获取下拉选项或者模糊选项中codes的值

demo已附上 待解决方案。

KevinChen 发表于 2020-4-10 09:51:18

这个示例已经实现了获取下拉项的codes值,参考截图:

mtkj 发表于 2020-4-10 11:11:17


这样子不行

KevinChen 发表于 2020-4-10 14:24:54

这是因为你绑定的数据源中,对应列的值不是obj,而是字符串,这样直接获取肯定是拿不到codes的值,因为单元格的值就是一个字符串。参考我附件的示例,其中关键代码有注释。

mtkj 发表于 2020-4-14 15:43:32

当复制粘贴的时候会出现取到的是一个字符串。如下图所示:

KevinChen 发表于 2020-4-15 09:48:38

这是因为单元格中保存的是一个json对象。
在JS中,JSON对象序列化字符串的结果取决于toString方法的返回值,

因此这里需要修改3处:

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



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


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


完整的示例Demo参考附件。

mtkj 发表于 2020-4-16 10:05:35

本帖最后由 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,帮忙瞅瞅






KevinChen 发表于 2020-4-16 16:37:20

自定义单元格添加了CustomerEditor,因此formatItem中才需要做定制解析,

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

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

                                        if(s.columns.binding != "小车号"){
                                                var sss = s.getCellData(e.row, e.col);
                                                if (classname!="check"){
                                                        if(sss){
                                                                if(sss.names){
                                                                        e.cell.innerHTML = sss.names;
                                                                }else{
                                                                        e.cell.innerHTML = isJSON(sss);
                                                                }
                                                        }
                                                }
                                        }

mtkj 发表于 2020-4-16 16:51:58

7# 的那个第二个问题可以解决吗?模糊搜索,

KevinChen 发表于 2020-4-16 17:37:29

你好,过滤和排序的问题,参考这篇帖子试试:

https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=74868&extra=page%3D1

另外,新的问题推荐可以发新帖,以免漏看~
页: [1]
查看完整版本: 下拉框获取下拉选项或者模糊选项中codes的值