2016-02-13 27 views
0

我是新的使用telerik工具的winforms,我想知道是否有人可以幫助我找到最好的方式,以便客戶端可以添加一個新的行radgrid並在數據源上顯示此更改。添加新行客戶端已進入數據源radgirdview

到目前爲止我設置了radgrid,以便客戶端可以添加一個新行。我只需要將它綁定到數據源。

private void radGridView1_Click(object sender, EventArgs e) 
    { 

     this.radGridView1.AllowEditRow = false; 
     this.radGridView1.AllowAddNewRow = true; 
     this.radGridView1.AllowDeleteRow = false; 
     this.radGridView1.AddNewRowPosition = Telerik.WinControls.UI.SystemRowPosition.Top; 

     this.radGridView1.MasterTemplate.AddNewBoundRowBeforeEdit = true; 
     radGridView1.EnableAlternatingRowColor = true; 

    } 
+0

什麼是您的數據源類型 - 列表,DataTable? – checho

+0

@checho its a DataTable – 123456789

+0

我在下面編輯了我的答案,以包含您的問題的答案。 – checho

回答

2

看一看在UserAddedRow事件RadGridView。用戶在網格中添加新行後觸發。然後,您可以將新條目添加到源列表或數據表中。

List<Foo> _lSource = new List<Foo>(); 
DataTable _tSource = new DataTable(); 

private void radGridView1_UserAddedRow(object sender, GridViewRowEventArgs e) 
{ 
    Foo foo = new Foo(); 
    foo.Col1 = e.Row.Cells["col1"].Value.ToString(); 
    foo.Col2 = e.Row.Cells["col2"].Value.ToString(); 

    _lSource.Add(foo); 
    _tSource.Rows.Add(e.Row.Cells["col1"].Value.ToString(), e.Row.Cells["col2"].Value.ToString()); 
} 

我在相同的代碼片段中添加了兩種可能性。只需選擇一個(列表或表格)。我剛創建了一個隨機課,向你展示一個例子。您可以創建自己的類並根據需要命名屬性。請注意,該列(我的示例中的col1col2)必須存在,否則您將得到NullReferenceException。如果您使用的是DataTable,則必須在添加行之前添加列。

_tSource.Columns.Add("col1"); 
_tSource.Columns.Add("col2"); 

我也建議不要更新的RadGridView click事件的RadGridView屬性。因爲足夠設置這些屬性一次。現在,您每次點擊網格視圖時都會設置它們。請將它們移動到您的表單的Load事件中,或者直接在設計器屬性中進行設置。

private void Form_Load(object sender, EventArgs e) 
{ 
    radGridView1.AllowEditRow = false; 
    radGridView1.AllowAddNewRow = true; 
    radGridView1.AllowDeleteRow = false; 
    radGridView1.AddNewRowPosition = Telerik.WinControls.UI.SystemRowPosition.Top; 

    radGridView1.MasterTemplate.AddNewBoundRowBeforeEdit = true; 
    radGridView1.EnableAlternatingRowColor = true; 
} 
0

RadGridView支持數據綁定到各種數據源,並且CRUD操作將自動爲您處理。在這裏您可以找到有關支持的數據源:Telerik UI for WinForms Documentation

這裏是如何綁定到一個DataTable,所有CRUD操作開箱

RadGridView radGridView1 = new RadGridView(); 
this.Controls.Add(radGridView1); 
radGridView1.Dock = DockStyle.Fill; 

DataTable table = new DataTable(); 
table.Columns.Add("col1"); 
table.Columns.Add("col2"); 
table.Rows.Add("value1", "value1"); 
table.Rows.Add("value2", "value2"); 

radGridView1.DataSource = table; 

這裏也是design time tutorial