找回密码
 立即注册

QQ登录

只需一步,快速开始

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-2-3 15:07  /   查看:3737  /  回复:0
背景:通过级联选择的单元格,达到填报时候能够进行二级甚至多级的选择。使填报更加友好
思路:
利用单元格类型中的combobox单元格,再利用监听事件ValueChanged,在事件中进行判断并更换下一级下拉菜单的选项
核心代码:
  1. var combo1 = new GC.Spread.Sheets.CellTypes.ComboBox();
  2.                 combo1.items([
  3. { text: '张老师', value: 'MrZhang' },
  4.                  { text: '王老师', value: 'MrWang' },
  5.                  { text: '李老师', value: 'MrLi' }]);
  6.                 sheet.setCellType(3, 2, combo1, GC.Spread.Sheets.SheetArea.viewport);
  7.                 combo1.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.value);
  8.                 var combo2 = new GC.Spread.Sheets.CellTypes.ComboBox();
  9.                 combo2.items([
  10.                  { text: '英语', value: 'English' },
  11.                  { text: '语文', value: 'Chinese' },
  12.                  { text: '数学', value: 'Math' }]);
  13.                 combo2.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.value);
  14.                 sheet.setCellType(3, 3, combo2, GC.Spread.Sheets.SheetArea.viewport);
  15.                 sheet.setValue(3,2,"MrZhang");
  16.                 sheet.setValue(3,3,"English");
  17.                 sheet.bind(GC.Spread.Sheets.Events.ValueChanged, function (e, info) {
  18.                         var row = info.row;
  19.                         var col = info.col;
  20.                         if(row==3&&col==2){
  21.                                 var value = info.newValue;
  22.                                 if(value == "MrZhang"){
  23.                                         combo2.items([
  24.                                          { text: '英语', value: 'English' },
  25.                                          { text: '语文', value: 'Yuwen' },
  26.                                          { text: '数学', value: 'Shuxue' }]);
  27.                                         sheet.setValue(3,3,"English");
  28.                                 }
  29.                                 if(value == "MrWang"){
  30.                                         combo2.items([
  31.                                          { text: '历史', value: 'Lishi' },
  32.                                          { text: '地理', value: 'Dili' },
  33.                                          { text: '政治', value: 'Zhengzhi' }]);
  34.                                         sheet.setValue(3,3,"Lishi");
  35.                                 }
  36.                                 if(value == "MrLi"){
  37.                                         combo2.items([
  38.                                          { text: '体育', value: 'Tiyu' },
  39.                                          { text: '音乐', value: 'Yinyue' },
  40.                                          { text: '美术', value: 'Meishu' }]);
  41.                                         sheet.setValue(3,3,"Tiyu");
  42.                                 }
  43.                         }
  44.                 });
复制代码
完整示例见附件

级联combobox.html

2.53 KB, 下载次数: 137

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部