找回密码
 立即注册

QQ登录

只需一步,快速开始

ilbjyaya

高级会员

12

主题

27

帖子

1143

积分

高级会员

积分
1143

活字格认证

ilbjyaya
高级会员   /  发表于:2015-1-15 17:07  /   查看:5450  /  回复:5
直接给spread绑定值的时候,
设置checkbox列的值=0,或1
绑定之后不显示checkbox状态,而是直接显示0和1。
必须要在绑定之后再次手动指定一下checkbox列的类型才行。
是这样的吗?

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-1-15 17:34:00
沙发
回复 1楼ilbjyaya的帖子

Spread 可以根据数据字段值自动生成单元格类型,bool则对应为CheckBox值。
如果对于数据字段为 int ,并且是 0,1之的话设置方法大体是1#描述的。

参考代码如下:

  1.             DataTable dt = new DataTable();
  2.             dt.Columns.Add("Bool", typeof(System.Boolean));
  3.             dt.Columns.Add("int", typeof(System.Int32));
  4.             dt.Rows.Add(true,1);
  5.             dt.Rows.Add(false,0);
  6.             dt.Rows.Add(true,1);


  7.             this.fpSpread1.ActiveSheet.AutoGenerateColumns = false;
  8.             this.fpSpread1.ActiveSheet.DataSource = dt;
  9.             this.fpSpread1.ActiveSheet.Columns[0].DataField = "Bool";
  10.             this.fpSpread1.ActiveSheet.Columns[1].DataField = "int";
  11.             this.fpSpread1.ActiveSheet.Columns[1].CellType = new CheckBoxCellType();
复制代码
回复 使用道具 举报
ilbjyaya
高级会员   /  发表于:2015-1-16 08:15:00
板凳
回复 2楼iceman的帖子

我在spread设计器里已经指定了单元格的类型CheckBox。
给这一列绑定了0,1的数据。
绑定完之后还必须要再次指定一下这一列的单元格类型吗?
this.fpSpread1.ActiveSheet.Columns[1].CellType = new CheckBoxCellType();
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-1-16 09:03:00
地板
回复 3楼ilbjyaya的帖子

可以不设置,需要设置 DataAutoCellTypes 为 false:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             DataTable dt = new DataTable();
  4.             dt.Columns.Add("Bool", typeof(System.Boolean));
  5.             dt.Columns.Add("int", typeof(System.Int32));
  6.             dt.Rows.Add(true,1);
  7.             dt.Rows.Add(false,0);
  8.             dt.Rows.Add(true,1);


  9.             this.fpSpread1.ActiveSheet.DataAutoCellTypes = false;
  10.             this.fpSpread1.ActiveSheet.DataSource = dt;
  11.             this.fpSpread1.ActiveSheet.Columns[0].DataField = "Bool";
  12.             this.fpSpread1.ActiveSheet.Columns[1].DataField = "int";
  13.         }
复制代码

评分

参与人数 1满意度 +5 收起 理由
ilbjyaya + 5 成功

查看全部评分

回复 使用道具 举报
ilbjyaya
高级会员   /  发表于:2015-1-16 09:31:00
5#
成了,谢谢啊!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-1-16 17:52:00
6#
回复 5楼ilbjyaya的帖子

客气了,本帖关闭。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部