|
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);
});
|
|