簡體   English   中英

如何將具有復雜數據對象的DataTable綁定到GridView?

[英]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.

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