找回密码
 立即注册

QQ登录

只需一步,快速开始

hiliuyong

初级会员

37

主题

61

帖子

270

积分

初级会员

积分
270
hiliuyong
初级会员   /  发表于:2020-11-26 09:35  /   查看:3311  /  回复:7
本帖最后由 hiliuyong 于 2020-11-26 09:36 编辑

这个例子有三个问题:
1.想实现第一列选出班级代号,后面的名称只能选这个班的
2.为什么够着函数里面这个绑定是不行的,必须在按钮里面绑定
  1. public Form1()
复制代码


3.连续点两次添加按钮,标题行自动消失

本帖子中包含更多资源

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

x

7 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-26 09:51:59
沙发
您好,问题已收到,预计明天给您答复~ 谢谢~
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-26 22:56:13
板凳
1.如果要实现这种关联,我建议你直接使用下拉框,然后
  1.             C1Combo ccb=new C1Combo();
  2.             //给C1Combo绑定数据,然后在将其作为editor

  3.             c1FlexGrid1.Cols[3].Editor = ccb;
复制代码


同时,使用beforeedit事件,在里面更改ccb 的数据源
  1.         private void C1FlexGrid1_BeforeEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
  2.         {
  3.             if (e.Col == 3)
  4.             {
  5.                 //在这里更改ccb的数据源为过滤后的
  6.             }
  7.         }
复制代码


2.你说的绑定是什么,是这一句吗            c1FlexGrid1.DataSource = currentStudents;
这个里面是0行数据

3.未能重现问题,请检查一下是否是这个步骤就可以重现
回复 使用道具 举报
hiliuyong
初级会员   /  发表于:2020-11-27 08:06:06
地板
本帖最后由 hiliuyong 于 2020-11-27 08:11 编辑

非常感谢,我已经理解你的意思了,不过还是遇到了一个解决问题【问题1】想用列名来判断
【问题2】如何根据当前行的第2列的列名来做筛选条件
文字描述不好理解的话,直接看代码
  1. private void c1FlexGrid1_BeforeEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
  2.         {
  3.             if (e.Col == 2)       //【问题1】想用类似这句  e.Col.Name = "ClassName"?
  4.             {
  5.                 cmbClass.ItemsDataSource = Classes;
  6.                 cmbClass.ItemsDisplayMember = "ClassName";
  7.                 cmbClass.ItemsValueMember = "ClassName";
  8.             }
  9.             else if (e.Col == 3)
  10.             {
  11.                 cmbStudent.ItemsDataSource = Students;  //【问题2】想用类似 cmbStudent.ItemsDataSource = Students.Where(t=>t.ClassCode=【当前行第2列】);
  12.                 cmbStudent.ItemsDisplayMember = "StudentName";
  13.                 cmbStudent.ItemsValueMember = "StudentName";
  14.             }
  15.         }
复制代码

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-11-27 09:25:56
5#
您好,问题已收到,预计今晚给您回复,谢谢~
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-27 23:49:55
6#
1.
  1.             if (e.Col == c1FlexGrid1.Cols[""].Index)
  2.             {

  3.             }
复制代码


2.我明白你的意思,想要取到【当前行第2列】的值,这个可以直接用
  1. c1FlexGrid1[e.Row, 2]
复制代码

来获取,但是最好是对null等情况做一下判断
回复 使用道具 举报
hiliuyong
初级会员   /  发表于:2020-11-28 18:25:25
7#
厉害,在这之前我摸索了两天,都没有这个解决得好
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-30 11:47:10
8#
不客气,问题解决了就好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部