找回密码
 立即注册

QQ登录

只需一步,快速开始

zhangyi

初级会员

31

主题

90

帖子

269

积分

初级会员

积分
269

活字格认证

zhangyi
初级会员   /  发表于:2013-12-3 12:14  /   查看:11984  /  回复:13
如图: C1FlexGrid中加入了个C1.Win.C1List.C1Combo


相关combo的加载代码:
        DS.DrkckTableAdapters.fwlSelectTableAdapter ta = new DS.DrkckTableAdapters.fwlSelectTableAdapter();
            var t = ta.GetData();
            c1Combo3.DataSource = t;
            c1Combo3.DisplayMember = "fwldm";
            c1Combo3.ValueMember = "fwlid";
            c1Combo3.DropDownWidth = 650;
            c1Combo3.Splits[0].DisplayColumns["fwlid"].Visible = false;
            c1Combo3.Columns["fwldm"].Caption = "编码";
            c1Combo3.Columns["fwllbmc"].Caption = "类别";
            c1Combo3.Columns["fwlmc"].Caption = "名称";
            c1Combo3.Columns["fwlgg"].Caption = "规格";
            c1Combo3.Columns["fdwmc"].Caption = "计量单位";
            c1Combo3.Columns["fwlsp"].Caption = "首拼简码";
            C1.Win.C1FlexGrid.Column col = grid1.Cols["fwldm"];
            col.Editor = c1Combo3;

1.  combo中输入时可以自动模糊搜索到 combo列表中的名称,编码,首拼简码 所在的行,就像百度搜索一样
如果输入的关键字在列表中没有被模糊搜索到,则要清除combo中所输入的
我目前的这种做法只能搜索到被 指定到 c1Combo3.DisplayMember = "fwldm"所在的列

2. 还有一个问题,好像combo加载的列无法改变顺序,只能根据数据源表的顺序,比如我想把 首拼简码调到第一列,只能从数据源表,改列字段顺序
  有没有方法在不动数据源字段顺序的情况下,改变这个列表的显示顺序

谢了!

本帖子中包含更多资源

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

x

13 个回复

正序浏览
iceman
社区贡献组   /  发表于:2013-12-17 10:08:00
14#
回复 13楼zhangyi的帖子

不客气,有问题欢迎开新帖提问。
回复 使用道具 举报
zhangyi
初级会员   /  发表于:2013-12-17 00:25:00
13#
回复 12楼iceman的帖子

好的,谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-16 16:35:00
12#
回复 11楼zhangyi的帖子

你指的是 C1FlexGrid 的 AutoGenerateColumns 属性的效果吧?
抱歉,C1Combo 目前还无法实现这种绑定方式。
不过,我会把需求提交到产品组,看是否能在后续版本中得到增强。
回复 使用道具 举报
zhangyi
初级会员   /  发表于:2013-12-16 02:32:00
11#
回复 10楼iceman的帖子

抱歉,版主,这几天有点特别忙的事,一直没有回复您。
您的例子我试过了,可以按顺序加加载combo的列,但现在另外个的问题,您给我看下有没有好一点的解决方法
1. 初始化的dt有3列,但我加载时只想显示2列。
   我之前的做法是隐藏掉不需要的列,但这样有个问题,如果我dt里有太多列时,比较麻烦,请问有没有
   好一点的方法,比如像 flexgrid一样,加载绑定数据源时不自动加载表格的列,指定什么才显示

本帖子中包含更多资源

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

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-11 13:24:00
10#
回复 9楼zhangyi的帖子

测试结果如何?
回复 使用道具 举报
zhangyi
初级会员   /  发表于:2013-12-10 18:47:00
9#
回复 8楼iceman的帖子

好的,我先学习一下您的例子
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-10 13:23:00
8#
回复 7楼zhangyi的帖子

zhagnyi 你好,
附件是我实现调整 列顺序 的 Demo 请参考:



根据你提供的信息,我无法重现问题。如果没能解决问题,请发 Demo 到论坛调试。

本帖子中包含更多资源

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

x
回复 使用道具 举报
zhangyi
初级会员   /  发表于:2013-12-10 00:22:00
7#
回复 4楼iceman的帖子

版主您好,按照您的这个设置,列的序顺没有按指这的序顺加载,还是和数据源一样,好像combo自动创建了列,是否有像c1flexgrid一样的 AutoGenerateColumns  属性要设置?

数据源的列顺序 :



加载代码为:
            DS.DwlgxTableAdapters.fgx_selectTableAdapter ta = new DS.DwlgxTableAdapters.fgx_selectTableAdapter();
            var t = ta.GetData(15);
            c1Combo2.DataSource = t;
            c1Combo2.DisplayMember = "fgxdm";
            c1Combo2.ValueMember = "fgxid";
            c1Combo2.DropDownWidth = 220;
            c1Combo2.Splits[0].DisplayColumns["fgxid"].Visible = false;
            c1Combo2.Columns[0].DataField  = "fgxdm";
            c1Combo2.Columns[0].Caption = "工序编码";
            c1Combo2.Columns[1].DataField = "fgxmc";
            c1Combo2.Columns[1].Caption = "工序名称";
            C1.Win.C1FlexGrid.Column col = grid1.Cols["fgxdm"];
            col.Editor = c1Combo2;


运行时显示为:




是否我的加载代码写法有问题
我想它显示为  工序编码    工序名称

本帖子中包含更多资源

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

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-4 11:31:00
6#
回复 5楼zhangyi的帖子

不客气,有问题欢迎开新帖提问。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部