我想在datagridview中检索数据表的所有数据。
dataGridView1.DataSource = dataTable1;
好的,那确实很简单,但是问题是,并非所有列都已创建。所有的外键列都丢失了。这似乎是默认行为。我不想关闭AutoGenerateColumns属性并手动创建列。
是否有一种简单的方法可以在datagridview中生成所有列?
答案 0 :(得分:0)
我找到了适合我的解决方案...
对此行为负责的是该列的列映射属性。将其从 MappingType.Hidden 切换到 MappintType.Element 可以防止内部列生成算法对列进行过滤
List<DataColumn> ldc_recover = new List<DataColumn>();
foreach (DataColumn dataColumn in dataTable1.Columns)
{
if (dataColumn.ColumnMapping == MappingType.Hidden)
{
dataColumn.ColumnMapping = MappingType.Element;
ldc_recover.Add(dataColumn);
}
}
// Fill the datagridview with data from datatable
dataGridView1.DataSource = dataTable1;
// Restore the previous columnmapping-property
foreach (DataColumn dc_enum in ldc_recover)
{
dc_enum.ColumnMapping = MappingType.Hidden;
}