我用defaultView对a字段进行排序后,对应的DataGrid生成一个视图,现在我需要通过n个行参数rowNum[n]对第rowNum[n]行的a字段的数据项进行修改,问题是,每当改变这个数据项的值,defaultView就会重新排列一次,使得后来的rowNum值无效,请问各位有什么好办法吗?

解决方案 »

  1.   

    试试如下方法是否可行:
    在对数据项修改前设置DefaultView的ApplyDefaultSort为false,完成后再将其改为true
      

  2.   

    try to use 'AcceptChange'
      

  3.   

    不行啊,我再描述一下我的问题,
    1.用view.sort("a ASC")进行排序后,从画面得到被选择的行值rowNum[n]
    For i = 1 to n
         '改变view(rowNum[i], 2)的值
    Next
    第一个for循环执行了以后,似乎进行了重新排序,行的顺序就变了.......也就是说第二个以后的循环的rowNum[i]值实际上就失效了......
      

  4.   

    在For i = 1 to n这一行前加view.sort(""),在Next后再加view.sort("a ASC")
    试试吧
      

  5.   

    我试过这种办法,还是不行,因为最开始得到的行值rowNum[n]是使用了view.sort("a.asc")的,一旦使用view.sort("")后数据项就回复到没有排序之前的状态,使得第一个rowNum也会失效。
      

  6.   

    moonlighter(悠然) :你好,我想应该可以,但觉得恐怕有效率问题,我想在那之前试试其它方法。
    我想知道defaultView到原来的DataTable中的映射关系可以得到吗?是否有view.GetOriginalTableRowNumber()这种函数的存在呢?
      

  7.   

    defaultView 里修改数据好么?一般都是建议在datatable里修改吧