簡體   English   中英

DataGridView數據綁定

[英]DataGridView databinding

我舉一個簡單的例子來解釋我想要的東西:

我定義了一個名為Student的類,它有兩個屬性: NameSubjects

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

我創建了兩個Student類實例,例如:

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

然后我創建一個List studentList:

List<Student> studentList = new List<Student>();
studentList.Add(Jack);
studentList.Add(Alan);

我的問題是,有什么方法可以用DataGridView這個studentList進行數據綁定,如下所示:

dataGridView.DataSource = studentList;

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

感謝您提前的時間。

這樣的東西會起作用:

  1. 將RowDataBound事件添加到網格並創建模板列以保存主題的下拉列表:

     <asp:GridView ID="dataGridView" runat="server" AutoGenerateColumns="false" OnRowDataBound="dataGridView_RowDataBound"> <Columns> <asp:BoundField DataField="Name" /> <asp:TemplateField> <ItemTemplate> <asp:DropDownList ID="subjects" runat="server" ></asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> 

  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(); } } 

呈現: 在此輸入圖像描述

順便說一下,你的學生班應該是這樣的:

public class Student
{
     public string Name {get;set;}
     public List<string> Subjects {get;set;}

     public Student(string name, List<string> subjects)
     {
         Name = name;
         Subjects = subjects;
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM