当前位置:编程学习 > C#/ASP.NET >>

怎么把list<T>里的数据绑定到Datagirdview

 //初始化员工信息
        private void Initial()
        {
            
            List<string> workers = new List<string>();
            SE a = new SE();
            a.Num = "20090101";
            a.Name = "王小毛";
            a.Age = 19;
            a.Gender = "男";
            workers.Add(a.ToString());


            SE b = new SE();
            b.Num = "20090102";
            b.Name = "周新宇";
            b.Age = 19;
            b.Gender = "男";
            workers.Add(b.ToString());
            
            //将List数据绑定到dgv
            this.dgvshowinfo.DataSource = workers;
            
        }


这个窗体数据都不显示,然后那个窗体最后一列多了一列length 两个都是9... --------------------编程问答-------------------- 再加一句
dataGridView1.AutoGenerateColumns = false;  --------------------编程问答-------------------- 没用哇=.= --------------------编程问答-------------------- List<string> workers = new List<string>();
改成
List<SE> workers = new List<SE>();
workers.Add(a); --------------------编程问答-------------------- 本来窗体那就四个列,一运行完变5列了。。莫名其妙多了个length列  还都写了9 = = --------------------编程问答-------------------- 三楼你大神0.0 出来了。。。 --------------------编程问答-------------------- ?? SE类什么样的啊? --------------------编程问答-------------------- 可以了吗??? --------------------编程问答-------------------- 就是  字段属性额。。还有一个无参 一个有参。。 --------------------编程问答-------------------- 这代码可诡异了,你把实体图类转换为String,我技术真还没到家,看不懂这个,忘后面的高手指点一二。 --------------------编程问答-------------------- dataGridView1.DataBind();
另外你把实体给tostring了做什么? --------------------编程问答-------------------- 直接绑。。
话说你重写过ToString()没有= = --------------------编程问答-------------------- 菜鸟 --------------------编程问答-------------------- 1. List<string> workers = new List<string>();改成
 List<SE> workers = new List<SE>();
2.dataGridView1.AutoGenerateColumns = false;  
3.画面设计的时候。指定列对应的哪个字段。 --------------------编程问答-------------------- 对象的属性名对应dgv的 列的 DataPropertyName
AutoGenerateColumns 必须设置,否则不但会出现多列的问题,将DataSource设null时也会出问题。
应该用BindingSource

List<SE> ses = new List<SE>();
BindingSource bds = new BindingSource();

....

bds.DataSource = ses;
dgv.DataSource = bds; --------------------编程问答--------------------
引用 13 楼 lye2000000_super 的回复:
1. List<string> workers = new List<string>();改成
 List<SE> workers = new List<SE>();
2.dataGridView1.AutoGenerateColumns = false;  
3.画面设计的时候。指定列对应的哪个字段。

+1, 这样就是把list 当做DataTable 来用就可以了。
dataGridView1.DataSource = workers;
--------------------编程问答-------------------- 这代码写的真犀利,第一次见到这么写的。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,