【问题标题】:How to add new row in DevExpress Gridview using C# code in Winforms?如何使用 Winforms 中的 C# 代码在 DevExpress Gridview 中添加新行?
【发布时间】:2017-08-18 21:29:01
【问题描述】:

我想在 GridViewControl 中添加新行。我尝试了以下代码。但它不会添加任何行。

我使用 RunDesigner 创建了列 FilterValues

然后我尝试通过以下代码使用按钮单击功能添加记录

(gridControlMultiFilterValues.MainView as DevExpress.XtraGrid.Views.Grid.GridView).AddNewRow();
int newRowHandle = (gridControlMultiFilterValues.MainView as DevExpress.XtraGrid.Views.Grid.GridView).FocusedRowHandle;

(gridControlMultiFilterValues.MainView as DevExpress.XtraGrid.Views.Grid.GridView).SetRowCellValue(newRowHandle, fieldName: "FilterValues", _value: "3rd Party %");

(gridControlMultiFilterValues.MainView as DevExpress.XtraGrid.Views.Grid.GridView).UpdateCurrentRow();
(gridControlMultiFilterValues.MainView as DevExpress.XtraGrid.Views.Grid.GridView).RefreshData();

【问题讨论】:

  • gridControlMultiFilterValues 是否绑定了任何数据源?

标签: c# winforms gridview devexpress datagridviewcolumn


【解决方案1】:

首先将 GridView 绑定到支持添加新项目的数据源,然后尝试向网格中添加一行,如下所示:

  private void CreatNewRow(int val1, int val2, int val3)
{
    gridView1.AddNewRow();

    int rowHandle = gridView1.GetRowHandle(gridView1.DataRowCount);
    if (gridView1.IsNewItemRow(rowHandle))
    {
        gridView1.SetRowCellValue(rowHandle, gridView1.Columns[0], val1);
        gridView1.SetRowCellValue(rowHandle, gridView1.Columns[1], val2);
        gridView1.SetRowCellValue(rowHandle, gridView1.Columns[2], val3);
    }
}

更多信息: https://www.devexpress.com/Support/Center/Question/Details/Q456331/add-new-row-to-gridview

【讨论】:

  • 你做了复制粘贴。这个我已经试过了。它不工作
  • 您应该确保您的 GridView 绑定到支持添加和编辑的 DataSource,例如 BindingSource,否则将无法正常工作。
  • 此外,如果您的 GridView 绑定到 BindingSource,您可以向数据源添加新项目,GridView 将自行更新以反映更改。
【解决方案2】:

我建议您阅读文档 - Adding and Deleting Records

要向视图添加新行,您可以使用 ColumnView.AddNewRow 方法。此方法仅支持实现的数据源 System.ComponentModel.IBindingList 接口。在其他情况下,您 应该使用数据源提供的方法来添加新行。

您应该使用数据源方法来添加、删除和修改单个行。某些数据源(例如数组和只读集合)不支持添加或删除行。不同的数据源有一些限制。

如果您是绑定了正确数据源的网格控件,请阅读TableView.AddNewRow 文章以获取有关 AddNewRow 方法的信息。

参考资料:
Add new row programmatically
How to: Initialize the New Item Row with Default Values
How to add a Row at Runtime to Devexpress Gridview

如果您在非绑定模式下工作,请查看这篇文章:
Can the GridControl be used completely in unbound mode?

在这种情况下,您必须创建自定义数据存储,当您执行任何插入/更新操作时必须对其进行维护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2016-06-23
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多