2012-06-26 100 views
2

我有一個動態創建的DataGridView,它有一個綁定了一行的有效DataSource。但是,當我在DataGridView上進行行計算時,它將返回0。即使有一個有效的數據源,Datagridview rowcount也會顯示0

dgResult.DataSource = resultDt; // a datatable containing one row 
flowLayoutPanel.Controls.Add(dgResult); 
int rows = dgResult.Rows.Count; // returning 0 always! 

有人能告訴我哪裏可能會出錯嗎?

回答

5

我發現了這個問題。我在未選中的標籤頁中顯示網格。除非網格可見,否則不會引起rowadded事件(這很奇怪!)durnig數據綁定。在執行數據綁定之前,我選擇了標籤頁,並且行計數工作。

+0

我面臨同樣的問題,我在tablelayout中顯示datagrid,你能告訴我解決它的方法嗎? – Mogli

+0

你如何做到這一點,你可以讓我們現在我的網格視圖是在選項卡中,並返回1總是行計數如何計數存在於TABS中的gridview行 –

2

使用此代碼來代替:

BindingSource bindingSource = new BindingSource(); 
bindingSource.DataSource = resultDt; 

dgResult.DataSource = bindingSource; 
flowLayoutPanel.Controls.Add(dgResult); 

var c = dgResult.Rows.Count; 

綁定源是何等的負責與控制同步數據。你想使用它,而不是試圖直接將表分配給控件。

+0

不幸的是,沒有解決問題。 – naspras

+0

我的猜測是你在某種程度上在你的數據被綁定之前處置掉了。發佈填充數據表的代碼,我會看看。確保你省去了連接字符串幷包含了你的聲明,所以我可以看看變量的作用域。 – KreepN

相關問題