• 当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。


    DataGridView1.Rows.Add(row)
    利用以上代码实现时的提示:
    当控件被数据绑定时,无法以编程方式向   DataGridView   的行集合中添加行。

    解决方法:

    1、直接在dataset中增加的,dataset中增加,datagridview自然就增加了.

    2、在数据绑定之前插入一个空行DataTable.Rows.insertat(DataTable.NewRow,位置),然后再绑定。
    3、直接DataTable.Rows.Add(DataTable.NewRow)就是在最后一行加入一个空白行

    4、添加一个 BindingSource所有的问题都解决了。首先是把数据源设给 BindingSource 的数据源。然后再把BindingSource设给 DataGridview 的数据源。需要使用BindingSource中转一下才可以。

    5、调用datatable的insert方法插入到指定位置

    补充第四条: 数据源必须是 Datatable   不能是List<> 集合的方式

      BindingSource bs = new BindingSource();
                bs.AllowNew = true;
                bs.DataSource = dt;
                uiDataGridView1.DataSource = bs;
       DataRow newRow;
                    newRow = dt.NewRow();
                    newRow["Id"] = 0;
                    newRow["Name"] = "";
                    dt.Rows.Add(newRow);

    注:

    1)绑定到DataTable,其实是绑定到DataTable提供的DataView上。每个DataTable都有一个缺省的DataView

    2)DataView是绑定的实质,正如其名,它是DataTable的数据的展现。因此可以对同一个DataTable

    ,构建多个DataView,进而可以对这同样的数据实施不同的过滤、排序等方法,从不同侧面展示DataTable。这也体现了一定的MVC思想。

    3)BindingSouce也可作为数据(其实是数据引用)的容器在不同窗体间传递,从而实现在弹出窗体中对数据的编辑

    资料

    https://blog.csdn.net/byondocean/article/details/6867214

    后续:sunnyui ,新增数据, 成功后,鼠标移动到新增行进行编辑, 无触发事件问题

    初始化列的时候默认列只读了.不让修改,这是原先的事件也获取不到点击也就不能改了, readonly  传递一个false ,就可以了

     public DataGridViewColumn AddColumn(string columnName, string dataPropertyName, int fillWeight = 100, DataGridViewContentAlignment alignment = DataGridViewContentAlignment.MiddleCenter, bool readOnly = true)
  • 相关阅读:
    Android TextView中的ellipsize属性
    Android 仿微信点赞和评论弹出框
    Java 数组倒序
    Android List去掉重复数据
    Android HttpClient get传递数组
    android HttpClient
    kali中的APT软件包处理工具(apt-get)、Debian软件包管理器(dpkg)、源代码压缩和Nessus安装实用指南
    安装Kali里的应用程序或软件包
    渗透测试方法论
    Kali Linux的介绍
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/16280425.html
Copyright © 2020-2023  润新知