[英]Updating DataGridView after changing data source during run-time
public void sortAssets(string assetType)
{
DataTable newDataTable = new DataTable();
foreach(DataRow row in table.Rows)
{
if ((string)row["assetType"] == assetType)
{
string test = (string)row["assetType"];
newDataTable.ImportRow(row);
}
}
dataGridViewAssets.DataSource = null;
dataGridViewAssets.DataSource = newDataTable;
dataGridViewAssets.Refresh();
}
以上是從我正在處理的程序中提取的一段代碼。 我想在運行時將數據源更改為newDataTable
。 為此,我首先使用dataGridViewAssets.DataSource = null;
清除了 datagridview dataGridViewAssets.DataSource = null;
. 然后,我更改了數據源( dataGridViewAssets.DataSource = newDataTable;
)。 最后,我通過dataGridViewAssets.Refresh();
刷新了 datagridview dataGridViewAssets.Refresh();
.
但是,可視化 datagridview 不會更新。 相反,其中的所有數據都會被刪除並保持空白。
這里有什么問題,必須改變什么?
除非您特別需要克隆行,否則這會簡單得多:
public void FilterAssets(string assetType) {
(dataGridViewAssets.DataSource as DataTable).DefaultView.RowFilter = "$[assetType] = '{assetType}'";
}
如果你已經基於綁定源制作了你的 DGV,它是
public void FilterAssets(string assetType) {
(dataGridViewAssets.DataSource as BindingSource).Filter = "$[assetType] = '{assetType}'";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.