[英]How do I bind a DataTable with complex data objects to a GridView?
我的數據表是通過編程生成的,並且在單元格中包含JobInstance類型的對象。
DataTable dataTable = new DataTable();
// first column - label dataTable.Columns.Add("JobType", typeof(string)); // other columns (data-driven) foreach(string config in Configurations) { DataColumn col = new DataColumn(config, typeof(JobInstance)); // !!! dataTable.Columns.Add(col); } // rows foreach(string jobType in JobTypes) { DataRow row = dataTable.NewRow(); row["JobType"] = jobType; foreach(string config in Configurations) { row[config] = GetJobInstance(jobType, config); // returns a JobInstance object } dataTable.Rows.Add(row); }
當我將此數據表綁定到ASP GridView時,它僅顯示第一列。 但是,如果我在創建列(帶有// !!!的行)時刪除了“ typeof(Job)”,則GridView通過在單元格中顯示JobInstance.ToString()的結果來顯示所有列。 但是,我無權訪問基礎的JobInstance對象,只有顯示的字符串值。
在顯示GridView時(例如在OnRowDataBound中),我需要訪問JobInstance對象,因為我想訪問JobInstance內每個單元格的字段以確定格式選項,並在每個單元格中添加其他鏈接。
這可能嗎?
謝謝。
是的,這是可能的。
為您的JobInstance
定義一個新的類,並將您的字段放入其中,為清楚起見,將其放在單獨的文件中。
在您的aspx代碼后面,定義一個List<JobInstance>
集合,然后將其填充到JobInstance
的實例中,然后將此列表分配給您的“ GridView”的DataSource
。
為了能夠訪問List<JobInstance>
的實例,請使列表成為aspx頁面的類中的字段成員。
希望有幫助,如果您需要任何幫助,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.