windows from下的DataGrid点击列标题排序后,使用
int i= this.dataGrid1.CurrentRowIndex ;
MessageBox.Show(objTable.Rows[i]["id"].ToString());
取出的值不是数据集中当前选择的记录的而,而是没有点击列标题时,那个顺序下的值.
请问怎么解决这个问题呢?
int i= this.dataGrid1.CurrentRowIndex ;
MessageBox.Show(objTable.Rows[i]["id"].ToString());
取出的值不是数据集中当前选择的记录的而,而是没有点击列标题时,那个顺序下的值.
请问怎么解决这个问题呢?
1在datagrid中加入主键列,可以不显示,通过主键来定位数据
2使用datatable的defaultView而不是datatable对datagrid进行绑定个人倾向使用第一种方法
DataRow row = ((DataRowView)bm.Current).Row;
如果DataGrid绑定的是DataView,
DataRowView drv = (DataRowView)this.BindingContext[this.ds,this.ds.Tables[0].TableName].Current;
获取到drv就可以改数据,
DataRow dw = drv.Row; // 得到DataRow,
DataTable dt = dw.Table;//得到DataTable
DataSet ds = dt.DataSet; http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp