DataTable trueDataTable = new DataTable("trueDataTable");
DataTable modelTable = new DataTable("ModelTable");
for (int column = 0; column < dataGridView.Columns.Count; column++)
{
if (dataGridView.Columns[column].Visible == true)
{
DataColumn trueColumn = new DataColumn(dataGridView.Columns[column].HeaderText, typeof(string));
trueDataTable.Columns.Add(trueColumn );
DataColumn modelColumn = new DataColumn(dataGridView.Columns[column].Name, typeof(string));
modelTable.Columns.Add(modelColumn);
}
}
for (int row = 0; row < dataGridView.Rows.Count; row++)
{
if (dataGridView.Rows[row].Visible == false)
continue;
DataRow trueRow = trueDataTable.NewRow();
for (int i = 0; i < trueDataTable.Columns.Count; i++)
trueRow [i] = dataGridView.Rows[row].Cells[modelTable.Columns[i].ColumnName].Value;
trueDataTable.Rows.Add(trueRow );
}
if (trueDataTable== null)
{
return;
}
将dataGridView转化为dataTable,这样可以过滤掉dataGridView中的隐藏列 trueDataTable为过滤后的table