2017-08-18 88 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?

在這種情況下,你必須創建自定義的數據存儲當您執行任何插入/更新操作時,您必須保留這些信息。

相關問題