DataGridView数据绑定

我举一个简单的例子来解释我想要的东西:

我定义了一个名为Student的类,它有两个属性: NameSubjects

 public class Student() { public string Name; public List Subjects; } 

我创建了两个Student类实例,例如:

 List jackSubjects = new List(); jackSubjects.Add("Math"); jackSubjects.Add("Physics"); Student Jack = new Student("Jack", jackSubjects); List alanSubjects = new List(); alanSubjects.Add("Accounting"); alanSubjects.Add("Science"); Student Alan = new Student("Alan", alanSubjects); 

然后我创建一个List studentList:

 List studentList = new List(); studentList.Add(Jack); studentList.Add(Alan); 

我的问题是,有什么方法可以用DataGridView这个studentList进行数据绑定,如下所示:

 dataGridView.DataSource = studentList; 

第一列是学生姓名,第二列是combobox ,显示学生的所有科目。

感谢您提前的时间。

这样的东西会起作用:

  1. 将RowDataBound事件添加到网格并创建模板列以保存主题的下拉列表:

              

  2. 然后在代码后面处理RowDataBound事件,如下所示:

     protected void dataGridView_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { var ddl = (e.Row.FindControl("subjects") as DropDownList); ddl.DataSource = (e.Row.DataItem as Student).Subjects; ddl.DataBind(); } } 

呈现: 在此处输入图像描述

顺便说一下,你的学生class应该是这样的:

 public class Student { public string Name {get;set;} public List Subjects {get;set;} public Student(string name, List subjects) { Name = name; Subjects = subjects; } }