找回密码
 立即注册

QQ登录

只需一步,快速开始

飞鹰

注册会员

5

主题

8

帖子

27

积分

注册会员

积分
27
  • 88

    金币

  • 5

    主题

  • 8

    帖子

最新发帖
飞鹰
注册会员   /  发表于:2024-8-18 14:21  /   查看:722  /  回复:4
我要求是同一列里的不同行进行编辑,必须按照我的要求格式进行输入较验合法性,如第一行我是想输入日期,则可以在这一列里调用日期的输入方式选择日期,第二行我想输入数字,则按数字的输入框进行输入较验,等等更多行的输入都可以按照我的要求格式进入输入,这些行不是固定的,我可以自由增加减少

4 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-8-19 09:34:25
沙发
grid类组件绑定的数据是行数据,每列应该是对应一个字段属性,因此通常来说应该是一个数据类型,没法满足你说的给每行设置不同的编辑器和校验规则,只能按列设置
  1.             c1FlexGrid2.Cols[1].Editor = new DateTimePicker();
  2.             c1FlexGrid2.Cols[2].EditorValidation.Add(new RangeRule() {  Maximum=DateTime.Now,Minimum= DateTime.Now.AddDays(-100)});
复制代码


如果要实现你的需求,推荐使用spread.net 这个控件类似于excel,每个单元格都是独立的,在不绑定数据的情况下,可以给每个单元格单独设置数据校验和编辑器
回复 使用道具 举报
一路向东
注册会员   /  发表于:2024-11-21 21:47:42
板凳
在C1FlexGrid的StartEdit事件中,对C1FlexGrid的Editor属性进行赋值。
  1. private TextBox textBox = new TextBox();
  2. private ComboBox comboBox = new ComboBox();
  3. private DateTimePicker dateTimePicker = new DateTimePicker();
  4. private NumericUpDown numericUpDown = new NumericUpDown();

  5. private void c1FlexGrid1_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
  6. {
  7.     switch (e.Row)
  8.     {
  9.         case 1:
  10.             c1FlexGrid1.Editor = comboBox;
  11.             break;
  12.         case 2:
  13.             c1FlexGrid1.Editor = dateTimePicker;
  14.             break;
  15.         case 3:
  16.             c1FlexGrid1.Editor = numericUpDown;
  17.             break;
  18.         default:
  19.             c1FlexGrid1.Editor = textBox;
  20.             break;
  21.     }
  22. }
复制代码


回复 使用道具 举报
一路向东
注册会员   /  发表于:2024-11-21 21:51:40
地板
一路向东 发表于 2024-11-21 21:47
在C1FlexGrid的StartEdit事件中,对C1FlexGrid的Editor属性进行赋值。

但是,只能做到不同行输入不同格式的数据,而做不到你想输入日期就会显示日期控件,你想输入数字就显示数字控件(还做不到脑机互联)。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-22 14:53:18
5#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部