DataGrid 的DataSource重新加載數據


DataGrid 的DataSource重新加載數據,若直接重新給DataSource賦值是沒有效果的,若只是修改原有數據中的單個值,此方法有效,但是針對完全不一樣的數據直接重新賦值的方式是無效的,此時需要先刪除DataSource原有的數據,再賦給它新的值。

刪除方式:

1.

DataGridView1.DataSource =null 此方式會將之前自定義現實的列刪除(相當於刪除結構),再次賦值DataGridView1顯示的列就會按照賦值的數據源來顯示,之前有自定義顯示列的話就會失效。

2.

DataTable dt = (DataTable)DataGridView1.DataSource;
dt.Rows.Clear();

DataGridView1.DataSource=dt;此方式試的時候老是報DataGridView1.DataSource強制轉壞失敗的錯誤(ps:可能是代碼那個地方沒有寫對)

3.

從以上方式2總結出,其實清空的原理就是按照原來賦值的數據源結構,賦一個空的值給DataSource 

假如之前賦的一個InfoDto的類型數據給DataSource ,此時清空DataSource 只需要一個空的InfoDto類型數據如下:

List<InfoDto> orderDtoNull= new List<InfoDto>();
DataGridView1.DataSource = orderDtoNull;

4.(推薦)

在重新賦值之前將數據源ToList()一下

DataGridView1.DataSource=OrderList.ToList();

原理:個人理解大概的意思是DataSource重新加載之前是使用的OrderList的原數據地址,后面雖然OrderList變了但是DataSource使用的數據地址沒有變,ToList()之后就會將OrderList的新地址傳給DataSource

此時重新賦值之后DataSource的數據就會有變化。

重新賦值:

根據以上方式之一的方式清空后只需再次將新的數據賦給DataSource 即可。

DataGridView1.DataSource = orderDtoNew;

 

 

ps:如果大家有更好的方式,歡迎留言!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM