2017-08-18 57 views
0

我想在GridViewControl中添加新行。我尝试了下面的代码。但它不会添加任何行。如何在Winforms中使用C#代码在DevExpress Gridview中添加新行?

我创建了列FilterValues使用RunDesigner

然后我试图通过下面的代码

(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(); 
+0

是gridControlMultiFilterValues绑定做任何数据源? –

回答

0

首先作出这样的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

+0

你做了复制粘贴。我已经试过这个。它不起作用 –

+0

你应该确保你的GridView绑定到一个支持添加和编辑的数据源,比如BindingSource,否则它将无法工作。 – EsnEzz

+0

另外,如果您的GridView绑定到BindingSource,您可以添加一个新的项目到您的数据源,并且GridView将自行更新以反映更改。 – EsnEzz

0

我建议你去到d ocumentation - 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?

在这种情况下,你必须创建自定义的数据存储当您执行任何插入/更新操作时,您必须保留这些信息。

相关问题