找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-2 15:01  /   查看:2801  /  回复:0
本帖最后由 Richard.Ma 于 2020-9-8 01:19 编辑

Flexgrid中每一列可以设置列数据类型,控件可以根据绑定的数据类型自动设置或者手动设置。对于不同的列类型,都会有对应的列编辑器与之对应

除此之外,Flexgrid也提供了自定义列编辑器的功能,我们可以通过代码来设置列编辑器
  1. c1FlexGrid1.Cols[1].Editor = new NumericUpDown();
复制代码


上述情况下,一列的所有行都使用的是一种编辑器。但是在某些情况下,我们希望编辑器可以更加灵活,比如根据编辑的单元格值不同,为此单元格设置不同的编辑器,
比如下图的效果,在该列是String的情况下,为数值使用数字编辑器,为文本使用文本编辑器



要实现这个功能,我们可以在BeforeEdit事件中对单元格的值进行判断,然后重新设置编辑器
  1.         private void C1FlexGrid1_BeforeEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
  2.         {
  3.             int intvalue;
  4.             if (e.Col == 1 && int.TryParse(c1FlexGrid1[e.Row, e.Col].ToString(), out intvalue))
  5.             {
  6.                 c1FlexGrid1.Cols[1].Editor = new NumericUpDown();
  7.             }
  8.             else
  9.             {
  10.                 c1FlexGrid1.Cols[1].Editor = new TextBox();
  11.             }
  12.         }
复制代码



本帖子中包含更多资源

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

x

0 个回复

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