我的数据表以编程方式生成,并在单元格中包含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);
}
// 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);
}
当我将此DataTable绑定到ASP GridView时,它只显示第一列。但是如果在创建列(带有// !!!的行)时删除“typeof(Job)”,则GridView会通过在单元格中显示JobInstance.ToString()的结果来显示所有列。但是,我无法访问基础JobInstance对象,只能访问正在显示的字符串值。
我在显示GridView时需要访问JobInstance对象(例如在OnRowDataBound中),因为我想访问每个单元格的JobInstance内的字段以确定格式选项,并在每个单元格中添加其他链接。
这可能吗?
感谢。
答案 0 :(得分:1)
是的,这是可能的。
为您的JobInstance
定义一个新类并将字段放入其中,为了清楚起见,请将其放在单独的文件中。
在您的aspx代码隐藏中,定义一个List<JobInstance>
集合,然后将其填入JobInstance
的实例中,然后将此列表分配给您的`GridView'的DataSource
。< / p>
为了能够访问List<JobInstance>
的实例,请将列表作为aspx页面类中的字段成员。
希望有所帮助,如果您需要任何帮助,请告诉我。