2013-05-17 181 views
3

我在C#winform應用程序中使用radgridview來顯示數據庫中的數據。我也通過ADO.Net改變了數據庫。問題出在我更改數據庫之後,例如通過刪除一行或添加新行,更改不會出現在gridview中。
我也想提一下,我已經通過智能標籤綁定了數據庫到gridview,當我嘗試創建一個新的數據集並將其分配給radgridview1.datasource時,我收到了很多錯誤。
有關如何強制radgridview重新加載datasource的建議?Telerik gridview:數據庫更改後如何刷新網格視圖

+0

把一些代碼.. – noobob

+0

我不認爲你可以找到任何東西在代碼中特殊的,用戶後按下刪除按鈕,我通過ADO刪除該行。就這樣。 – Rsh

回答

0

好了,我發現自己的答案。雖然它只適用於dataGridView,並且不適用於dataListView
要刪除記錄,並更改提交到數據庫:

radGridView1.CurrentRow.Delete(); 
this.yourTableAdapter.Update(yourDataSet); 

在另一方面,如果你已經添加了新的記錄,你想改革列表:如果你知道如何

this.yourTableAdapter.Fill(yourDataSet.yourTabel); 

dataListView一樣,我會很高興聽到。

+0

更新TableAdapter就是我上面提到的:)。祝你好運。 – checho

1

您可以使用簡單的soultion網格刷新數據:

MyGrid.DataSource = null; 
MyGrid.DataSource = updatedData; 
+0

如何填寫'updateddata'? – Rsh

+0

再次從數據庫中加載它。 – alexmac

+0

如果我創建一個新的數據集並通過'adapter.Fill(ds)'填充它,我會在'itemDatabound'事件處理函數中得到空指針異常。 – Rsh

0

這是一個tutorial,一步步解釋如何綁定網格。綁定後,更新TableAdapter後,引入基礎源的更改將自動反映並更改,RadGridView將在DataTable中更新。

3

當數據源得到改變,刷新DataGrid中使用下面的代碼:

this.radGridViewName.MasterTemplate.Refresh(null); 

此行解決我的問題:-)

0

該解決方案類似於亞歷山大:

List<ClassOfDataRow> t = radGridView.ItemsSource as List<ClassOfDataRow>; 
radGridView.ItemsSource = null; 
radGridView.ItemsSource = t; 

ClassOfDataRow是用於在網格中存儲一行數據的類,radGridView是RadGridView的名稱。

0

數據集有明確的功能,可以將新數據傳遞到數據集之前調用:

Resultset.Clear(); 
DataAdapter.fill(Resultset); 
Radgridview.datasource=Resultset; 
相關問題