1、获取选中行的数据
DataRow dr = grvInfo.GetFocusedDataRow();
string cinvcode=dr["CINVCODE"].ToString();
2、获取数据源
grdInfo.DataSource=DataTable; (DataTable是类型)
3、gridContral数据转换成DataTable,并获取值
DataTable dt = gridControl1.DataSource as DataTable; (转成DataTable)
DataView dv = new DataView(dt);
dv.RowFilter = "SEL = 'TRUE'"; (查询数据列名为“SEL”的,并且选中的)
if (dv.Count == 0)
{
MessageDxUtil.ShowError("请至少选择一条记录!");
return;
}
this.m_cinvCode = dv[0]["CINVCODE"].ToString();
returndt = dv.ToTable(); (DataView转成DataTable)
this.DialogResult = DialogResult.OK; (关闭窗体)
4、C#创建DataTable并赋值
DataTable dt = new DataTable();
dt.Columns.Add("value");
dt.Columns.Add("text");
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["value"] = "1";
dr["text"] = "在用";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["value"] = "2";
dr["text"] = "借用";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["value"] = "3";
dr["text"] = "维修";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["value"] = "4";
dr["text"] = "报废";
dt.Rows.Add(dr);
5、为DataTable添加一列复选框,绑定到GridControl
DataTable dt = new DataTable();
dt.Columns.Add("SEL", typeof(bool));
gridControl1.DataSource = dt;
gridView1.BestFitColumns();
6、设置列表可编辑
除了在控件里面设Edit为true外
gridView1_ShowingEditor的事件中:
ColumnView view = (ColumnView)sender;
if (view.FocusedColumn.FieldName != "QTY" && view.FocusedColumn.FieldName != "CPOSCODE" && view.FocusedColumn.FieldName != "CBATCH")
{
e.Cancel = true;
} (只有QTY、CPOSCODE、CBATCH可以编辑,其他列不可编辑)
7、防止选择多行漏选
ColumnView View = (ColumnView)gridControl1.FocusedView;
if (!(View.PostEditor() && View.UpdateCurrentRow())) return;