zoukankan      html  css  js  c++  java
  • 如何在一个RowFilter过的dataview中增加一行

    假设你有一个有一组数据的"view" . 其中一个栏位包含一个国家ID (ru "US"): 

    DataView myDataView = new DataView(myTable); 
    myDataView.RowFilter 
    = "country = 'us'"
    myGrid.DataSource 
    = myDataView; 

    如果你用RowFilter过滤这个view使只有 countory为 us的记录显示出来,然后又要增加一个新行,因为这个view已经被Filter过了,所以这个新行将不会显示出来。

    DataRowView drv = myDataView.AddNew(); 

    为了解决这个问题,可能需要花费大量的时间去debugging,或者就是去修改datagrid什么的。但是实际上真正的问题是由于以下这句代码造成的。
    myDataView.RowFilter = "country = 'us'"
    由于过滤,dataview将只返回满足条件的所有datarow,其它的datarow将被排除。所以新增一个新行的时候,drRow["country"] 的值为null值(DBNull),而这是要被过滤条件所过滤得数据。

    解决方法如下:

    1// Change values in the DataRow. 
    2drRow = drv.Row[0]; 
    3drRow ["country"]='us'
     
    4
    drRow.EndEdit(); 

    Note: 如果filter的表达式有多个栏位,所有的栏位必须进行同样的操作。


    DevX:Navin Varma
  • 相关阅读:
    FastDfs安装
    groovy学习(二)
    jenkins(一)jenkins使用教程
    jenkins(二)Pipeline语法速成
    groovy学习(一)
    Docker笔记(一)
    运维笔记(一)
    Maven管理(一)
    工厂模式案例与理解
    python 探測端口
  • 原文地址:https://www.cnblogs.com/rickel/p/146917.html
Copyright © 2011-2022 走看看