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
  • 相关阅读:
    webgl glsl
    javascript 分号理解
    流的理解 1
    javascript 排序
    phaser3 微信小游戏若干问题
    layabox 3d 入手
    phaser2 微信小游戏入手
    取整你知道几中办法?
    script 执行的三种方式
    cl查看类的内存布局
  • 原文地址:https://www.cnblogs.com/rickel/p/146917.html
Copyright © 2011-2022 走看看