我的DataTable以編程方式生成,並在單元格中包含JobInstance類型的對象。如何將具有複雜數據對象的DataTable綁定到GridView?
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時訪問JobInstance對象(例如在OnRowDataBound中),因爲我想訪問JobInstance中每個單元格的字段以確定格式選項,並在每個單元格中添加其他鏈接。
這可能嗎?
謝謝。
嗯,我不想顯示JobInstance的字段作爲列。我的列是獨立定義的,每個單元格都是一個JobInstance。但最後我做了類似於你所建議的事情,並直接在行/列中訪問我的數據結構結構中的對象,因爲似乎沒有辦法按照我想要的方式實際將對象綁定到gridview。 – ewerx 2011-02-02 21:15:22