找回密码
 立即注册

QQ登录

只需一步,快速开始

liushiniao

初级会员

31

主题

76

帖子

269

积分

初级会员

积分
269

活字格认证微信认证勋章

liushiniao
初级会员   /  发表于:2019-1-17 14:22  /   查看:3724  /  回复:3
我使用的是10.2的版本,现在是通过tables的方式绑定数据源,然后通过代码给第一列增加了checkbox,但是必须要双击才能选中,而且勾选一个以后再去勾选第二个,第一个勾选的checkbox就取消了,因为官网上的demo都是12版本的,所以不知道10.2版本的怎么处理这个问题,请指点,谢谢!

代码片段.zip

48.26 KB, 下载次数: 170

3 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-17 16:31:02
沙发
您好,按照您的思路,我这边实现了一个Demo,您参考一下,代码如下:


  1.     window.onload = function () {
  2.         GC.Spread.Common.CultureManager.culture("zh-cn");
  3.         var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 1 });

  4.         spread.suspendPaint();

  5.         var sheet = spread.getActiveSheet();

  6.         var spreadNS = GC.Spread.Sheets;


  7.         var dataSource = {records: [{f1:true, f2: "name1", f3:"desc1"},{f1:false, f2: "name2", f3:"desc2"},{f1:true, f2: "name3", f3:"desc3"}]};
  8.         var dataSource1 = new spreadNS.Bindings.CellBindingSource(dataSource);
  9.         var table = sheet.tables.add("tableRecords", 0, 0, 3, 3, spreadNS.Tables.TableThemes.light6);
  10.         table.autoGenerateColumns(false);
  11.         var tableColumn0 = new spreadNS.Tables.TableColumn();
  12.         tableColumn0.name("选择");
  13.         tableColumn0.dataField("f1");
  14.         var tableColumn1 = new spreadNS.Tables.TableColumn();
  15.         tableColumn1.name("名称");
  16.         tableColumn1.dataField("f2");
  17.         var tableColumn2 = new spreadNS.Tables.TableColumn();
  18.         tableColumn2.name("描述");
  19.         tableColumn2.dataField("f3");

  20.         table.bindColumns([tableColumn0,tableColumn1, tableColumn2]);
  21.         table.bindingPath("records");
  22.         table.showFooter(true);

  23.         sheet.options.allowCellOverflow = true;
  24.         //Adjust row height and column width
  25.         sheet.setColumnWidth(0, 50);
  26.         sheet.setColumnWidth(1, 115);
  27.         sheet.setColumnWidth(2, 115);
  28.         sheet.options.gridline = { showHorizontalGridline: false, showVerticalGridline: false };
  29.         sheet.setDataSource(dataSource1);

  30.         var CheckBox = spreadNS.CellTypes.CheckBox;
  31.         sheet.setCellType(1,0,new CheckBox());
  32.         sheet.setCellType(2,0,new CheckBox());
  33.         sheet.setCellType(3,0,new CheckBox());

  34.         spread.resumePaint();

  35.         spread.bind(spreadNS.Events.ButtonClicked, function (e, args) {
  36.             var sheet = args.sheet, row = args.row, col = args.col;
  37.             var cellType = sheet.getCellType(row, col);
  38.             if (cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox) {
  39.                 console.log(1);
  40.             }else {
  41.                 console.log(2);
  42.             }
  43.         });
  44.     };
复制代码

checkbox_liushiniao_demo.html

3.15 KB, 下载次数: 130

回复 使用道具 举报
liushiniao
初级会员   /  发表于:2019-1-21 08:50:06
板凳
通过您的demo,问题已解决,非常感谢
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-21 09:29:46
地板
不客气,很高兴解决了您的问题,本帖我结贴了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部