从数据库中查询出数据 dt = c.SelectAll(); 然后 dataGrid.dataSource = dt;
在dataGrid中要双击弹出一个窗体查看记录的详细信息,可以用一个数组赋值来实现,
但是客户要求在双击查看详细信息窗体中加下一条上一条按钮查看信息,就是循环赋值。
这个也不难做,可以先记录双击时dt的行数来控制,问题是:dataGrid有一个自带的排
序功能,随便单击一个字段的标头排序后得到的dt不是排序后的数据表,怎么得到这个
排序后的表呢????
请高手们指点!!!!万分感谢
在dataGrid中要双击弹出一个窗体查看记录的详细信息,可以用一个数组赋值来实现,
但是客户要求在双击查看详细信息窗体中加下一条上一条按钮查看信息,就是循环赋值。
这个也不难做,可以先记录双击时dt的行数来控制,问题是:dataGrid有一个自带的排
序功能,随便单击一个字段的标头排序后得到的dt不是排序后的数据表,怎么得到这个
排序后的表呢????
请高手们指点!!!!万分感谢
用后者的话,和bindingNavigator搭配应该可以实现这样的功能呀!
控制this.BindingContext[your_datasource].Current
CurrencyManager bindingManager = (CurrencyManager)this.BindingContext[this.DataGrid1.DataSource];
//如果多个表,比如DataSet,
CurrencyManager bindingManager = (CurrencyManager)this.BindingContext[this.DataGrid1.DataSource,this.DataGrid1.DataMember];
bindingManager.Position为当前记录位置,
可以通过设置该值进行移动,
/如果DataGrid只是帮定一个表,
CurrencyManager bindingManager = (CurrencyManager)this.BindingContext[this.DataGrid1.DataSource];
//如果多个表,比如DataSet,
CurrencyManager bindingManager = (CurrencyManager)this.BindingContext[this.DataGrid1.DataSource,this.DataGrid1.DataMember];
比如移动到最后一条记录。
bindingManager.Position = bindingManager.Count-1;
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q934q
中的方法,或者你可以直接通过
DataView dv = this.dataGrid1.DataSource as DataView;
来获得DataView,然后访问其的Sort属性,然后通过datatable获得当前DataRow的排序集合,例如:
DataRow[] drArray = dv.Table.Select( null, dv.Sorted, dv.RowStateFilter );
那么至于在新窗口怎么显示,从datarow[]获得记录然后访问即可。
The DefaultView property returns a DataView you can use to sort, filter, and search a DataTable. 就是说DataView其实是DataTable的一张动态的视图,也可以delete row, add row