zoukankan      html  css  js  c++  java
  • 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:如果大家有更好的方式,欢迎留言!!!

  • 相关阅读:
    Python学习笔记(10):异常
    SharePoint中RichTextBox的Required验证
    Python学习笔记(6):模块
    Python学习笔记(4):控制流
    Python学习笔记(5):函数
    解决SharePoint中GridView导出Excel按钮的问题
    Python学习笔记(8):面向对象
    如何在SharePoint中创建Custom Master Page
    main cannot be resolved or is not a field
    c# 格式化输出字符串
  • 原文地址:https://www.cnblogs.com/sugarwxx/p/9494168.html
Copyright © 2011-2022 走看看