Dev GridControl

(1)、gridView.AddNewRow()

(2)、实现 gridView_InitNewRow 事件

注:使用泛型集合绑定数据源,在GridView中实现自动添加行时,AddNewRow()方法不起效。在获取数据行时,
GetDataRow()方法无法获取数据,如果使用gridcontrol用于只呈现数据可以使用泛型集合作为数据源,如果涉及到增、删、改建议使用
DataTable作为数据源,这样以上两个方法可以正常使用。

方法1(绑定DataTable作为数据源):

Step1:绑定数据源

  gridControl.DataSource=dataTable;

Step2:gridView_InitNewRow 事件

  DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;
      //DataRow dr = this.gridView1.GetDataRow(this.gridView1.FocusedRowHandle);
      //初始化赋值
     view.UpdateCurrentRow();

Step3:添加行触发事件

  gridView.AddNewRow()

方法2(绑定List<T>作为数据源)

Step1:绑定数据源

  List<DepartmentInfo> source=GetDepartmentList();            //获取泛型数据列表

  gridControl.DataSource=new BindingList<DepartmentInfo>(source);    //泛型类型转换

Step2:gridView_InitNewRow 事件

  DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;
      //DataRow dr = this.gridView1.GetDataRow(this.gridView1.FocusedRowHandle);
      //初始化赋值
     view.UpdateCurrentRow();

Step3:添加行触发事件

  gridView.AddNewRow()

方法2初始化赋值优化:

//获取类型默认值

public static object DefaultForType(Type targetType)
{
       return targetType.IsValueType? Activator.CreateInstance(targetType) : null;  
}

初始化--gridView_InitNewRow

private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
        {
            DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;

object destinationRow = gridView1.GetFocusedRow();
            object sourceRow = gridView1.GetRow(0);     //获取数据源第一行作为模板原型
            System.Reflection.PropertyInfo[] propertyCollection = sourceRow.GetType().GetProperties();
            foreach (System.Reflection.PropertyInfo propertyInfo in propertyCollection)
            {
                //获取第一行数据
                //object aa = sourceRow.GetType().GetProperty(propertyInfo.Name).GetValue(sourceRow, null);
                object aa = DefaultForType(sourceRow.GetType());
                destinationRow.GetType().GetProperty(propertyInfo.Name).SetValue(destinationRow, aa, null);

}

view.UpdateCurrentRow();
        }

时间: 2025-01-05 14:22:47

Dev GridControl的相关文章

DEV GridControl小结【转载】

1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.AddNewRow() (2).实现 gridView_InitNewRow 事件 3.如何解决 GridControl 记录能获取而没有显示出来的问题 gridView.populateColumns(); 4.如何让行只能选择而不能编辑(或编辑某一单元格) (1).View->OptionsBehavi

DEV GridControl小结

1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.AddNewRow() (2).实现 gridView_InitNewRow 事件 3.如何解决 GridControl 记录能获取而没有显示出来的问题 gridView.populateColumns(); 4.如何让行只能选择而不能编辑(或编辑某一单元格) (1).View->OptionsBehavi

Dev GridControl 小结3

Dev GridControl 小结 时间 2014-03-26 19:24:01  CSDN博客 原文  http://blog.csdn.net/jiankunking/article/details/22202753 主题 .Net //删除记录 this.gridView1.DeleteSelectedRows(); //添加记录 this.gridView1.AddNewRow(); 1.确认当前正在编辑的单元格的输入 this.gridview1.CloseEditor(); 2.得

Dev gridControl z

Dev gridControl 添加表标题 1.OptionsView ->ShowViewCaption = True 2.ViewCaption = "标题" Dev gridControl 按回车增加一行 将NewItemRowPosition属性设置为Top或Bottom, 在这样的新行中输入数据后,会自动添加到绑定的数据源中的, 如果你希望在按回车时焦点跳至下一列, 只需要设置GridView的OptionNavigations->EnterMoveNextCol

dev gridcontrol选中多行数据

dev的gridcontrol控件作表格时是可以实现按Ctrl键选中多行数据的,首先改变gridcontrol的一个属性:gridview1->OptionsSelection->MultiSelect改为true,即允许选中多行.然后在需要使用的事件方法中加入以下代码:int[] rows = gridview1.GetSelectedRows();即可获取选中行的行号

dev gridcontrol控件手动添加一行数据

很多时候我们真的只想单纯的手动添加一行数据,而不想修改数据源再回来绑定.如果你有这种想法,那么我可以负责任的告诉你:做不到! 我已经两次遇到过这样的问题,尝试手动添加,整整两天时间都没有成功.网上说的方法基本都是绑定数据源,偶尔有人说用SetRowCellValue方法,用法如下: gridView1.SetRowCellValue(0, gridView1.Columns[0], "qwe"); 即在0行0列的单元格设为qwe值,看起来多好,可问题是它就是不显示,更改了无数属性都无法

DEV GridControl 常用属性 z

1隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值 sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString(); 3.数据只读 gridView1.OptionsBehavior.Editable=false; 4.不显示MasterDetailView gridView1.OptionsDetail.EnableMa

Dev GridControl数据导出格式问题

环境:DevExpress9.3,Vs2008 DevExpress的GridControl提供方便的数据导出到Excel功能,导出中用户可以根据GridControl的格式进行导出(ExportToXls(Stream stream)方法). 1.如果表中存在一列为字符类型,但是存放的为数字,那么按照GridControl的格式导出到Excel中便会产生"将存储为文本的数字转换为数字"的问题提示,必须在Excel中把这些值转化为数字,才可进行计算等. 对于这种方式的处理方法很简单,只

dev GridControl实现拖拽

一.示例说明 以gridControl1和gridControl2为例,从gridControl1拖拽行到gridControl2中去. 二.属性设置 gridControl2.AllowDrop = true;            gridControl1.AllowDrop = true; 三.事件代码:分别为GridControl和gridview添加下列事件 #region Grid拖拽操作 GridHitInfo GriddownHitInfo = null; #region 拖出