DataGrid 的DataSource重新加载数据

摘要:
DataGrid的DataSource重新加载数据,若直接重新给DataSource赋值是没有效果的,若只是修改原有数据中的单个值,此方法有效,但是针对完全不一样的数据直接重新赋值的方式是无效的,此时需要先删除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:如果大家有更好的方式,欢迎留言!!!

免责声明:文章转载自《DataGrid 的DataSource重新加载数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)前台往后台传id下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#中对Winform中的DataGridView的控制技巧。(单独控制某单元格的按钮不显示、某单元格的ReadOnly)

1:控制按钮列中的某一行不显示按钮。(使用环境:数据的移动,如把第二行的数据移动到上面去,最下面的一行为合计行,不允许移动,因此,就需要把第一行与最后一行的按钮屏蔽掉。屏蔽的方法:把按钮改成普通的单元格。具体实现代码如下:(第8列中的第一行与最后一行按钮不显示)) //定义绘画表格前的事件,在绘画前把按钮转换成普通单元格。dataGrid.RowPreP...

easyui datagrid 可过滤行的数据表格 导出

    //过滤栏表格导出数据                  /* xukf                 * id datagrid id                 * url Action 路径                 */                function exportExcelToFilter(id){      ...

ES6 (2):解构赋值

对于解构赋值个人感觉需要理解左查询与右查询的区别,然后对解构赋值的理解才会更深一些。 解构赋值:对数组和对象中的值提取,赋值到声明的变量中。 模式匹配:模式相同,或者说样子一样 如果不成功,变量值为undefined,等号右边不是数组(不是可遍历,因为模式是数组)会报错。 允许指定默认值: 左右匹配使用的是严格相等运算符(严格等于undefined,...

C# WinForm开发系列 DataGrid/DataGridView

在WinForm开发中,DataGrid/DataGridView被广泛使用于绑定数据库中数据进行呈现.整理一些关于DataGrid /DataGridView使用的文章,涉及DataGrid/DataGridView基本功能,自定义绘制控件,数据导入/导出(Excel),打印 等. 1.新数据网格简介(DataGridView) 2.自定义DataGri...

扩展easyui.datagrid,添加数据loading遮罩

easyui可以说是轻量级的前端UI框架,更新到1.2.1支持更多的事件,方法和属性 在使用的过程中,发现easyui目前还缺少一些小功能或是未开放出来 拿datagrid插件来说,数据加载提供了两种方式远程和本地数据加载,但只有远程数据加载时才会显示数据加载的遮罩层,在数据加载完成后隐藏遮罩层;而本地数据加载时则不会出现遮罩,这应该是考虑到本地数据加载的...

easyui中datagrid自带loading效果

1.最近在做项目的时候,数据表格中的列名也是动态,后台会将列名和数据一起返回给前台,这样,easyui中的datagrid中自带的loading效果将不再生效,所以自己写了一个easyui的loading插件(效果和datagrid 效果加载一样)  插件代码如下: // loading_line插件 ;(function($){ 'use str...