2012-01-18 34 views
1

我正在與一個DataGridView有兩個TextBoxColumn s和一個DataGridViewButtonColumn如何在DataGridView中使用未綁定的字段?

由於數據源我勢必一個DataTable有三列:「ID」「名稱」「姓」,但我需要只顯示最後兩列,所以在我的DataGrid我只定義了NameSurname(和按鈕列),設置AutoGenerateColumns屬性等於false

現在我需要使用「ID」場在一排按鈕被點擊時...

什麼是獲得「ID」從當前行值的正確方法是什麼?

回答

0

的「ID」值隱藏着什麼.Visible不適用快。嘗試使用DataViewBindingSource

看到這個link

filters,這很好。 像這樣:

BindingSource tSource = new BindingSource(); 
DataView view = new DataView(_table); 
tSource.DataSource = view; 

在這裏,我找到了一行:

DataRow row = CurrentRow(_dataGridView); 

下面是執行:

public static DataRow CurrentRow(DataGridView aGrid) 
    { 
     CurrencyManager xCM = 
      (CurrencyManager)aGrid.BindingContext[aGrid.DataSource, aGrid.DataMember]; 
     DataRowView xDRV = (DataRowView)xCM.Current; 
     return xDRV.Row; 
    } 

這樣的事情應該工作。

希望這對你有所幫助!

+0

得到它謝謝!我會看一看。 – davioooh 2012-01-20 11:57:03

1

如果是關於顯示其他列,我會將ID列留在中,並通過將Columns["ID"].Visible設置爲false來隱藏它。然後您可以訪問該列中的數據,但它不會顯示在屏幕上。

0
gridview.Rows[gridview.CurrentRow.Index].Cells["id"].Value 

你會得到當前行

+0

即使它沒有綁定到數據網格,我會得到它嗎?你確定? – davioooh 2012-01-18 09:25:02

+0

然後你會得到一個空值 – Nighil 2012-01-18 09:35:41

+0

我的意思是我沒有在我的網格中的「Id」列,所以我認爲你的解決方案不應該形成我的工作。 – davioooh 2012-01-18 09:40:58

相關問題