我很难尝试访问隐藏在DataTable中的隐藏列,后来在DataGridView中绑定和访问
详细信息:dtResult是一个DataTable 试过的例子:
dtResult.Columns[i].ColumnMapping = MappingType.Hidden;
OR
dtResult.Columns.RemoveAt(i);
然后存储到DataGridView的DataSource:
dataGridView.DataSource = dtResult;
访问隐藏列时出现错误:"列'活动'无法找到" :
dataGridView.SelectedRows[0].Cells["active"].Value.ToString()
DataGridView 是否有办法隐藏列 隐藏 DataTable,然后再将其绑定到DataGridView ?
请帮帮我〜。谢谢
仅供参考:
I just realized
That DataSource Binding doesn't include Hidden Columns of DataTable.
Means That If DataTable.Column.Count = 10. (2 Hidden)
DataGridView.DataSource = DataTable.
DataGridView.Column.Count == 8.
所以引导我问。 如何将这些隐藏列绑定到DataTable中的DataGridView
答案 0 :(得分:1)
为什么需要隐藏数据表中的列? UI中的可见性是UI关注点,我将数据表绑定到datagridview并隐藏datagridview中的所需列。
答案 1 :(得分:0)
我知道这已经过时但我今天遇到了同样的问题,所以我发布了我的解决方案。我使用DataSet.ReadXml(Stream)将xml文件转储到DataSet中,并且为关系生成的列未显示在DataGridView中。以下代码循环遍历DataSet中每个DataTable中的所有列,并将ColumnMapping属性更改为MappingType.Element。我选择了MappingType.Element,因为可见列设置为了那个,描述符合我的情况:"该列映射到XML元素。"
简答:将ColumnMapping从MappingType.Hidden更改为绑定到DataGridView之前未隐藏的内容。
...
DataSet ds;
...
foreach(DataTable dtbl in ds.Tables)
{
foreach(DataColumn dcol in dtbl.Columns)
{
if (dcol.ColumnMapping == MappingType.Hidden)
{
dcol.ColumnMapping = MappingType.Element;
}
}
}
DataGridView.DataSource = ds;
然后,如果您需要在UI中隐藏它们,可以在DataGridView上执行此操作。