2012-01-18 17 views
1

私はDataGridViewと2つのTextBoxColumnDataGridViewButtonColumnを持っています。DataGridViewでバインドされていないフィールドを使用するにはどうすればよいですか?

私は3つの列でDataTableをバインドデータソースとして:私のDataGrid内「ID」「名前」「姓」が、私は唯一の最後の2つの列を表示する必要があるので、私AutoGenerateColumnsプロパティをfalseに設定したNameSurname(ボタン列)のみを定義しました。

今、私は行のボタンがクリックされたときに「ID」フィールドを使用する必要があります...

現在の行から「ID」値を取得するための正しい方法は何ですか?

答えて

0

の「ID」の値を取得します。 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

1

他の列を表示する場合は、ID列をそのまま残して、Columns["ID"].Visibleをfalseに設定して非表示にします。次に列のデータにアクセスするだけで、画面には表示されません。

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

あなたは、高速に動作しません.Visible何かを非表示にするには、現在の行

+0

データグリッドにバインドされていなくても取得できますか?本気ですか? – davioooh

+0

それからあなたはヌルの値を得ます – Nighil

+0

私が意味するのは私のグリッドに "ID"の列がないので、あなたの解決策は私の仕事をしてはいけないと思います。 – davioooh

関連する問題