GridControl如何动态新增行,且给新行赋值?

webhermit102 2015-01-10 07:37:28
GridControl如何动态新增行,且给新行赋值?
...全文
6277 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
gao424424 2018-06-26
  • 打赏
  • 举报
回复
引用 9 楼 webhermit102 的回复:
刚刚在youtube视频里面看了一个GridControl的InitNewRow事件的一个例子,里面的代码非常简单,但是点击按钮时候能触发此事件,我就开始怀疑了到底是不是13.1.8的这个版本的这个事件有Bug
https://www.youtube.com/watch?v=uSwClk_s9rA
下面是youtube的截图
我也没有触发这个事件,奇怪了
zy32002 2017-04-06
  • 打赏
  • 举报
回复
新增行,要绑定数据才有效果,哪怕是绑定null数据,需要的是数据结构。
fantasykakaxi 2016-03-14
  • 打赏
  • 举报
回复
楼主解决没 求分享 谢谢谢谢
ladyfish 2015-04-07
  • 打赏
  • 举报
回复
我也遇到了这个问题,我跟了一下代码,发现AddNewRow在源码里都没有实现,是个虚函数,而且调用这个函数,列表的行数 也没有增加,楼主现在解决了吗。
webhermit102 2015-01-12
  • 打赏
  • 举报
回复
刚刚在youtube视频里面看了一个GridControl的InitNewRow事件的一个例子,里面的代码非常简单,但是点击按钮时候能触发此事件,我就开始怀疑了到底是不是13.1.8的这个版本的这个事件有Bug
https://www.youtube.com/watch?v=uSwClk_s9rA
下面是youtube的截图


webhermit102 2015-01-12
  • 打赏
  • 举报
回复
引用 7 楼 duanzi_peng 的回复:
[quote=引用 6 楼 webhermit102 的回复:] [quote=引用 5 楼 duanzi_peng 的回复:] 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();
        }
    }
[/quote] 你设置 newRow的 显示位置了么[/quote] 你好,我测试的是一个空白的控件,没有数据源绑定,仅仅是通过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);
                });
exception92 2015-01-12
  • 打赏
  • 举报
回复
1楼 正解。。。
exception92 2015-01-12
  • 打赏
  • 举报
回复
引用 6 楼 webhermit102 的回复:
[quote=引用 5 楼 duanzi_peng 的回复:] 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();
        }
    }
[/quote] 你设置 newRow的 显示位置了么
webhermit102 2015-01-12
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
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();
        }
    }
honstat 2015-01-11
  • 打赏
  • 举报
回复
你要选择gridview1找到他的InitNewRow事件,双击
webhermit102 2015-01-11
  • 打赏
  • 举报
回复
人呢?自己顶一下!
webhermit102 2015-01-10
  • 打赏
  • 举报
回复
引用 1 楼 honstat 的回复:
先在方法中加入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事件,这个是什么情况?
honstat 2015-01-10
  • 打赏
  • 举报
回复
先在方法中加入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])); //复制最后一行的数据到新行 } 你也可以根据需要更改,流程就是这样

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧