找回密码
 立即注册

QQ登录

只需一步,快速开始

pigeon79

注册会员

5

主题

18

帖子

171

积分

注册会员

积分
171

微信认证勋章

pigeon79
注册会员   /  发表于:2016-4-18 21:27  /   查看:4677  /  回复:7
       C1FlexGrid 绑定数据后我想显示其中一个对象的名称如以下例子,我想显示文章和名字,因为名字这列编辑控件使用DROPDOWN,数据库保存是保存用户id的,我是怎么也不能显示相关的内容?不知道能不能实现,如果不能实现使用什么方法可以?先表示感谢!
private List<NDARTICLE> InitData()
        {
            List<NDARTICLE> data = new List<NDARTICLE>();

            data.Add(new NDARTICLE() { ARTICLE = "书1", USER = new NDUSER() { Id = 1, USERDM = "001", USERNAME = "张三" } });
            data.Add(new NDARTICLE() { ARTICLE = "书2", USER = new NDUSER() { Id = 2, USERDM = "002", USERNAME = "李四" } });
            data.Add(new NDARTICLE() { ARTICLE = "书3", USER = new NDUSER() { Id = 1, USERDM = "001", USERNAME = "张三" } });
            data.Add(new NDARTICLE() { ARTICLE = "书4", USER = new NDUSER() { Id = 4, USERDM = "004", USERNAME = "王五" } });
            data.Add(new NDARTICLE() { ARTICLE = "书5", USER = new NDUSER() { Id = 5, USERDM = "005", USERNAME = "赵六" } });
            return data;
        }
        private void c1Button1_Click(object sender, EventArgs e)
        {
            this.c1FlexGrid1.AutoGenerateColumns = false;
                //this.Cols[num].Format = "c";
                //this.Cols[num].Name = info.ColumnName;
                //string columnType = info.ColumnType;
                //this.Cols[num].DataType = Type.GetType("System." + columnType);
                //this.Cols[num].Format = info.DispFormat;
                //this.Cols[num].WidthDisplay = info.ColumnWidth;
            this.c1FlexGrid1.Cols.Count = 2;
            this.c1FlexGrid1.Cols.Fixed = 0;
            this.c1FlexGrid1.Cols[0].Name = "ARTICLE";
            this.c1FlexGrid1.Cols[0].Caption = "文章";
            this.c1FlexGrid1.Cols[0].Format = "c";
            this.c1FlexGrid1.Cols[1].Name = "USER";
            this.c1FlexGrid1.Cols[1].Caption = "姓名";
            this.c1FlexGrid1.Cols[1].Format = "c";
            //this.c1FlexGrid1.Cols[1].DataType = typeof(String);


            List<NDARTICLE> data = InitData();
            this.c1FlexGrid1.DataSource = new BindingList<NDARTICLE>(data);
            int r = 1, c = 1;
            foreach (NDARTICLE n in data)
            {
                NDUSER u = n.USER;
                this.c1FlexGrid1.SetData(r, 1, u.USERNAME);
                r++;
            }

        }
//数据对象类
public class NDARTICLE
    {
        public string ARTICLE { get; set; }

        public NDUSER USER { get; set; }
    }
    public class NDUSER
    {
        public int Id { get; set; }
        public string USERDM { get; set; }

        public string USERNAME { get; set; }

        public string PASSWORD { get; set; }

        public int ISMANAGER { get; set; }

    }

7 个回复

倒序浏览
unity
社区贡献组   /  发表于:2016-4-20 09:43:03
推荐
这个代码本身有问题。
两种处理方式
1, 列1不要设定绑定  this.c1FlexGrid1.Cols[1].Name = "";
不要设置Name的值。这样后面给单元格赋值的操作有效。
2. 列1绑定一个新的属性   this.c1FlexGrid1.Cols[1].Name = "USERNAME";
然后修改  class NDARTICLE 增加 USERNAME 的属性。
   
        public string USERNAME { get{ return USER.USERNAME;} }


   

评分

参与人数 1金币 +999 收起 理由
Alice + 999 很给力!

查看全部评分

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-4-19 09:13:14
沙发
谢谢您的反馈。
您可以参考如下两篇博客,学习如何绑定List数据源。
http://blog.gcpowertools.com.cn/ ... id-performance.aspx
http://blog.gcpowertools.com.cn/ ... id-20130531002.aspx
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
pigeon79
注册会员   /  发表于:2016-4-19 09:22:32
板凳
Alice 发表于 2016-4-19 09:13
谢谢您的反馈。
您可以参考如下两篇博客,学习如何绑定List数据源。
http://blog.gcpowertools.com.cn/po ...

你好,这两个我都看过了。主要是现在我是用ORM做数据绑定和保存。其中数据对象中用户也是个对象,但是grid上只能显示名称,不知道grid该如何显示这个名称我显示出来是直接的对象!

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-4-19 14:07:40
地板
pigeon79 发表于 2016-4-19 09:22
你好,这两个我都看过了。主要是现在我是用ORM做数据绑定和保存。其中数据对象中用户也是个对象,但是gri ...

谢谢您的反馈。
我理解您的图片展示了代码运行后的结果。
请将您期望的结果发给我,我帮您看看有没有解决方法。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-4-20 11:55:22
6#
unity 发表于 2016-4-20 09:43
这个代码本身有问题。
两种处理方式
1, 列1不要设定绑定  this.c1FlexGrid1.Cols[1].Name = "";

谢谢你提供的处理思路,提供金币奖励。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
pigeon79
注册会员   /  发表于:2016-4-20 13:57:20
7#
unity 发表于 2016-4-20 09:43
这个代码本身有问题。
两种处理方式
1, 列1不要设定绑定  this.c1FlexGrid1.Cols[1].Name = "";

昨天已使用第二种方式,不过还是非常感谢!因为以前一直使用DATASET做数据处理,刚转ORM不是很熟悉。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-4-20 18:06:34
8#
pigeon79 发表于 2016-4-20 13:57
昨天已使用第二种方式,不过还是非常感谢!因为以前一直使用DATASET做数据处理,刚转ORM不是很熟悉。

谢谢您的反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部