簡體   English   中英

在運行時更改數據源后更新 DataGridView

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM