GridControl如何动态新增行,且给新行赋值? |
|
11分 |
先在方法中加入2行代码
gvTask.AddNewRow(); //会触发事件 gvTask.OptionsBehavior.Editable = true;//保存更改内容 //下面是事件 private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e) { ColumnView View = sender as ColumnView; View.SetRowCellValue(e.RowHandle, View.Columns[0], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount – 2), gridView1.Columns[0])); //复制最后一行的数据到新行 View.SetRowCellValue(e.RowHandle, View.Columns[1], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount – 2), gridView1.Columns[1])); //复制最后一行的数据到新行 } |
你好,我用了AddNewRow,但是并没有触发InitNewRow事件,这个是什么情况? |
|
人呢?自己顶一下!
|
|
1分 |
你要选择gridview1找到他的InitNewRow事件,双击
|
5分 |
1楼 正解。。。
|
我拖了个空白的控件测试,发现也并没有触发嘛,这个是要设置什么属性吗? public partial class A : DevExpress.XtraEditors.XtraForm { public A() { InitializeComponent(); this.gridView1.InitNewRow += gridView1_InitNewRow; } private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e) { } private void simpleButton1_Click(object sender, EventArgs e) { this.gridView1.AddNewRow(); } } |
|
3分 |
你设置 newRow的 显示位置了么 |
你好,我测试的是一个空白的控件,没有数据源绑定,仅仅是通过AddNewRow方法看是否触发,InitNewRow 事件,结果发现没有触发。 另外,程序里面的控件也是没有绑定数据源的,但是是通过以下代码添加 commodityBusiness.GetCommodityListInId(commodityIdList).ForEach(item => { this.gridView1.AddNewRow(); //此处没有触发事件 this.gridView1.SetFocusedRowCellValue("CommodityNumber", item.CommodityNumber); this.gridView1.SetFocusedRowCellValue("CommodityName", item.CommodityName); this.gridView1.SetFocusedRowCellValue("Unit", item.Unit); this.gridView1.SetFocusedRowCellValue("UnitPrice", item.UnitPrice); this.gridView1.SetFocusedRowCellValue("Count", item.Count); }); |
|
刚刚在youtube视频里面看了一个GridControl的InitNewRow事件的一个例子,里面的代码非常简单,但是点击按钮时候能触发此事件,我就开始怀疑了到底是不是13.1.8的这个版本的这个事件有Bug
下面是youtube的截图 |