(1)Dev控件GridControl 的使用
1、确认当前正在编辑的单元格的输入 this.gridview1.CloseEditor();
2、保存当前行的值到数据源 this.gridview1.UpdateCurrentRow();
3、通过数据适配器把修改更新到数据库 sqlDataAdapter1.Update(myDataSet, "MyTable") //此时直接通过DataAdapter执行Update就可以
按照1,2,3的步骤执行;也可以通过1,2步骤然后通过Sql实现 (2)DataGrid的初始化 gridView1.OptionsView.EnableAppearanceEvenRow = true; gridView1.OptionsView.EnableAppearanceOddRow = true; gridView1.OptionsView.ShowFilterPanel = false; gridView1.OptionsView.ShowGroupPanel = false; gridView1.OptionsView.ShowGroupPanel=false; gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; gridView1.OptionsBehavior.Editable = false; gridView1.OptionsCustomization.AllowColumnMoving = false; gridView1.OptionsCustomization.AllowColumnResizing = false; gridView1.OptionsCustomization.AllowGroup = false; gridView1.OptionsCustomization.AllowFilter = false; gridView1.OptionsCustomization.AllowSort = true; (3)获取选中的行 和选中行的字段的内容
int
[] a
=
this
.gridView1.GetSelectedRows();
//
传递实体类过去 获取选中的行
LAA.AssetGuid
=
this
.gridView1.GetRowCellValue(a[
0
],
"
AssetGuid
"
).ToString();
//
获取选中行的内容
(4)以前在windows 自带的控件里面Button控件的相互调用是 button1_Click(null,EventArgs.Empty); Dev控件下面是 simpleButton1_Click(new object(),new EventArgs()); (5)在XtraGrid中如何验证单元格的值 我们在XtraGrid直接输入数据的情况下,如何验证每一个单元格输入的值是否正确呢? 有两种方法来实现基于单元格的验证: 1、使用RepositoryItem.Validating事件 事件的"sender" 必须转换为BaseEdit类型,使用EditValue来获取当前输入的值并进行校验,如果校验不通过,把e.Cancel设置True。这种方法一般用来对内置控件的单元格进行数据验证 2、使用 GridView.ValidatingEditor 事件 事件的"sender"必须转换为GridView类型,当前列可以从GridView.FocusedColumn属性获得,值可以从e.Value获取,如果校验不通过,需要把e.Valid设置为False.。 这种方法一般用于对整个Grid内的文本框进行数据验证 在设置完事件之后需要写一个GridView.InvalidValueException 的事件委托: 例如:
private
void
gridView1_InvalidValueException(
object
sender, DevExpress.XtraGrid.Views.Base.InvalidValueExceptionEventArgs e)
{ e.ThrowException = false ; e.WindowText = " The new value is invalid. Please correct it or press Esc to abandon your changes. " ; e.DisplayError = true ; }
(6)barManager的具体设置 在增加了barManager控件以后,在[Click Here to add MainMenu] [Click Here to Tool Bar]里面选择[Click Here to Tool Bar] 填写需要新增的工具栏按钮。 进入Designer 里面,选择ToolBars ->Custom 1->OptionsBar 里面进行如下设置: AllowQuickCustomization=false DrawDragBorder=false RotateWhenVertical=false UseWholeRow=True 以上4项进行初始化设置 (7) 在DataGrid 里面增加状态栏 首先在BarManager里面增加StaticText 把新增的barStaticItem 的AutoSize 设置为Spring 然后,编写以下代码:
private
void
StateCote()
{ if (gridView1.RowCount != 0 ) { int a = this .gridView1.RowCount; barStaticItem1.Caption = " 当前共有记录: " + a.ToString(); int [] b = this .gridView1.GetSelectedRows(); b[ 0 ] += 1 ; barStaticItem2.Caption = " 当前选中: " + b[ 0 ].ToString(); } else { barStaticItem1.Caption = " 当前共有记录: " ; barStaticItem2.Caption = " 当前选中: " ; } }
private
void
gridControl1_Click(
object
sender, System.EventArgs e)
{ StateCote(); }
private
void
gridView1_FocusedRowChanged(
object
sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{ StateCote(); }
(8) DateTable 填充DataGrid 这里需要引用:
using
DevExpress.Utils;
/**/
/// <summary> /// 根据DataTable 填充DataGrid /// </summary> /// <param name="dt"></param>
private
void
DisposeDataGrid(DataTable dt)
{ // 标题居中 gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center; this .gridControl1.DataSource = dt; gridView1.Columns[ 0 ].Visible = false ; // 异常日志GUID gridView1.Columns[ 1 ].Visible = false ; // 通行编号 gridView1.Columns[ 2 ].Visible = false ; // 通道编号 gridView1.Columns[ 3 ].Caption = " 通道名称 " ; gridView1.Columns[ 3 ].Width = 100 ; gridView1.Columns[ 4 ].Caption = " 卡号 " ; gridView1.Columns[ 4 ].Width = 100 ; gridView1.Columns[ 5 ].Caption = " 持卡人姓名 " ; gridView1.Columns[ 5 ].Width = 60 ; gridView1.Columns[ 6 ].Caption = " 主卡卡号 " ; gridView1.Columns[ 6 ].Width = 100 ; gridView1.Columns[ 7 ].Caption = " 主卡持卡人 " ; gridView1.Columns[ 7 ].Width = 60 ; gridView1.Columns[ 8 ].Caption = " 通行时间 " ; gridView1.Columns[ 8 ].Width = 100 ; gridView1.Columns[ 9 ].Caption = " 车牌号码 " ; gridView1.Columns[ 9 ].Width = 60 ; gridView1.Columns[ 10 ].Visible = false ; // 图象GUID gridView1.Columns[11 ].Caption = " 异常描述 " ; gridView1.Columns[ 11 ].Width = 100 ; gridView1.Columns[ 12 ].Caption = " 处理结果 " ; gridView1.Columns[ 12 ].Width = 100 ; gridView1.Columns[ 13 ].Visible = false ; // ImageID // 可以排序 gridView1.OptionsCustomization.AllowSort = true ; }
其中有一列显示时间类型
gridView1.Columns[
3
].Caption
=
"
操作时间
"
; gridView1.Columns[
3
].Width
=
200
; gridView1.Columns[
3
].UnboundType
=
DevExpress.Data.UnboundColumnType.DateTime; gridView1.Columns[
3
].DisplayFormat.FormatString
=
"
F
"
; gridView1.Columns[
3
].DisplayFormat.FormatType
=
FormatType.DateTime;
(9) 双击DataGrid弹出详细信息
private
void
gridControl1_DoubleClick(
object
sender, System.EventArgs e)
{ // 双击弹出异常日志描述 if ( this .gridView1.RowCount > 0 ) { int [] a = this .gridView1.GetSelectedRows(); string str_GUID = this .gridView1.GetRowCellValue(a[ 0 ], " Ex_No " ).ToString(); // 获得异常编号 MessageBox.Show(str_GUID); frmExceptionLogDesc dlg = new frmExceptionLogDesc(); dlg.Text = " 异常日志查看 " ; dlg.ShowDialog(); } }