如何将当前的 Datagrid 数据转换为 DataTable?我已经过滤了数据网格,现在我只想过滤数据到数据表中。Datagrid.ItemSource 或 DatagridView 在这里没有帮助。
问问题
3417 次
2 回答
2
您可以将数据从 datagrid 放入 datatble,如下所示:
DataTable dt = new DataTable();
DataColumn[] dcs = new DataColumn[]{};
foreach (DataGridViewColumn c in dgv.Columns)
{
DataColumn dc = new DataColumn();
dc.ColumnName = c.Name;
dc.DataType = c.ValueType;
dt.Columns.Add(dc);
}
foreach (DataGridViewRow r in dgv.Rows)
{
DataRow drow = dt.NewRow();
foreach (DataGridViewCell cell in r.Cells)
{
drow[cell.OwningColumn.Name] = cell.Value;
}
dt.Rows.Add(drow);
}
于 2012-10-18T08:02:09.897 回答
1
将更新的数据保存在会话中,或者将其写入 XML 并随时获取数据。
像这样的东西
private void BindGrid()
{
DataTable dt;
if (Session["GridData"] == null)
{
dt = GetData();//From database or and other source
Session["GridData"] = dt;
}
else
{
dt = (DataTable)Session["GridData"];
}
GridView.datasource = dt;
GridView.Databind();
}
private void UpdataData(object sender, EventArgs e)
{
DataTable dt;
if (Session["GridData"] != null)
{
dt = (DataTable)Session["GridData"];
// Do whatever you want with dt (datatable);
Session["GridData"] = dt;
BindGrid();
}
}
于 2012-10-18T08:08:15.280 回答