我下面有一个属性。
public class MfrYearEqpType
{
public string EqpType { get; set; }
public MfrYearEqpType()
{
}
}
我想为我的类“MfrYearEqpType”创建动态属性(Datatable列名),并从Datatable下面设置值。
DataTable dt = getData();
此表包含26行和10列数据。
我已经通过以下链接。但我不知道如何处理我的案子。
Dynamically adding properties to an Object from an existing static object in C#
我还使用了 ExpandoObject 。我在下面做了样本。
DataTable dt = getData();
List<dynamic> expandoList = new List<dynamic>();
foreach (DataRow row in dt.Rows)
{
//create a new ExpandoObject() at each row
var expandoDict = new ExpandoObject() as IDictionary<String, Object>;
foreach (DataColumn col in dt.Columns)
{
//put every column of this row into the new dictionary
expandoDict.Add(col.ToString(), row[col.ColumnName].ToString());
}
//add this "row" to the list
expandoList.Add(expandoDict);
}
但我的目标是创建MfrYearEqpType列表。这样我就可以将MfrYearEqpType的List绑定到Gridview。
请帮我解决这个问题。
答案 0 :(得分:0)
假设您在这里讨论ASP.NET,您可以直接将数据表绑定到GridView的DataSource
属性。
如果您对显示为默认值的这10列感到满意,可以将AutoGenerateColumns
属性设置为true。否则,您可能需要根据需要定义<asp:BoundField />
或<asp:TemplateField />
列。绑定字段将允许您至少格式化特定列的值,而模板字段将允许完全自定义,您可以在其中提供定义如何呈现特定字段。