DataView m_dv= new DataView();
m_dv=dv ;
m_dv.Sort="XXXX";
int dsRowCount; int i;
dsRowCount=dv.Count;
DataTable dt =new DataTable();
for(i=0;i<10;i++) //假定每页显示10行
{
m_dv.AddNew();
} 代码如上,我要原来的DataView后面新加十条记录时,只有第一条是在最后一行,其它的都是在原记录的前面
请问该怎么解决??
m_dv=dv ;
m_dv.Sort="XXXX";
int dsRowCount; int i;
dsRowCount=dv.Count;
DataTable dt =new DataTable();
for(i=0;i<10;i++) //假定每页显示10行
{
m_dv.AddNew();
} 代码如上,我要原来的DataView后面新加十条记录时,只有第一条是在最后一行,其它的都是在原记录的前面
请问该怎么解决??
这和排序的字段没有关系,
而且添加完记录之后已重新绑定到DataGrid中TO:coldpanth(云之崖)
我是新加空行,没办法添加后再排序,不然的话,空行会在第一行上的!我是要对显示十条记录到DataGrid中,如果有六条的话就新加空行!
m_dv.Table.Rows.InsertAt(m_dv.Table.NewRow(),m_dv.Count + i);
Dim c_colNewCustomerDataRows As New Collection
然后读取
LoadUpdatableDataSet()
当你往DataView里面每插入一条新的纪录的时候,上一条刚插入的纪录就会被自动追加到原始的DataTable里面去。
这样,当你追加到第十条纪录的时候,画面上表示出的是10条纪录,而实际上DataTable里面是9条纪录。
最后一条并没有被追加到DataTable里面去。
而DataGrid排序的时候,实际上是按照DataTable里面实际上存在的数据排序的,所以,只会有9条数据被排序。而你没有指明排序的方向,默认是aesc,空行会被排在上面,也就是你看到的,最后会有一条空行的纪录,无论你怎么排序,它都在最下面,因为它并没有参与排序。
即便你追加的不是空行,他也不会被排序的。
所以呢,你最好是直接追加纪录到原始的DataTable里面去。
这样就没问题了。
当然,如果你想证明我说的对不对的话,你可以在执行完追加空行纪录的循环处理下面打印出DataView的纪录数和DataTable的纪录数,一看就明白了。
呵呵。
祝你好运
非常感谢您老的不啬讲解,令小的我茅塞顿开,让俺豁然开朗,让吾等一泄千里!
怀着对您老兄的万分敬仰和千般崇拜,
因而决定暂时先不结帐,以便可以再一睹您老兄的靓丽容貌!
哈哈…广告之后,马上回来结帐!
hoho不容易啊