2013-02-14 66 views
0

我想執行一個按鈕點擊事件,網格Currentrow整個數據被傳遞到對象數組運算DataGridView中選擇特定的行並返回所有列值到一個對象數組

我試圖通過以下來搜索鏈接:

DataGridView selecting a specific row and retrieving its values

Getting data from selected datagridview row and which event?

但他們談論的是特定的單元格的值

我試着用代碼來執行

DataRowView currentDataRowView = (DataRowView)grdGLSearch.CurrentRow.DataBoundItem; 
DataRow row1 = currentDataRowView.Row; 

但currentDataRowView被檢索空

我的高級成功地之一創建了一個通用屬性GetSelectedRow()

它的工作原理是這樣的:

var object =grdGLSearch.GetSelectedRow<T>(); 

它有清晰度

public T GetSelectedRow<T>() 
     { 
      if (this.CurrentRowIndex == -1) 
      { 
       return default(T); 
      } 
      return (base.DataSource as BindingList<T>)[this.CurrentRowIndex]; 
     } 

但它綁定到只有一個主網架,我也想用這個屬性到另一個網格

我不想特定列的數據,我想整個行數據..和不希望任何迭代要執行... 是否有任何單線程操作? 請建議如果我缺少任何鏈接

回答

0

由於您只顯示2行代碼,我真的不確定到底發生了什麼。首先,當你點擊某個按鈕時,我會得到整行。但是,您永遠不會說明當前行的選擇方式。

爲了獲得完整選定的行,您必須有一個選定的單元格。 MSDN文檔在DataGridView.SelectedRow的頁面上說明了這一點。所以我假設用戶會點擊一個單元格,並且你想要整行。我會創建一個變量來保存你選中的行。然後,當用戶單擊單元格時,自動選擇該行並保存它。然後當點擊按鈕時,只需檢索已保存的行。

private DataGridViewRow selectedRow { get; set; } 

然後讓當用戶點擊一個細胞

private void grdGLSearch_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    selectedRow = grdGLSearch.Rows[e.RowIndex]; 
} 

最後的事件,按鈕單擊事件

private void SubmitBtn_ItemClick(object sender, ItemClickEventArgs e) 
{ 
    // to target the specific data 
    var cellVal1 = selectedRow.Cells["SpecificCell1"].Value; 
    var cellVal2 = selectedRow.Cells["SpecificCell2"].Value; 
} 
+0

肯定的,但selectedRow將提供有關該行的所有元數據信息,我不想要所有的元數據信息,我只想在列中的值集合 – neeraj 2013-02-15 07:00:31

+0

然後在按鈕單擊方法中,將這些信息從selectedRow中提取出來。 – Tom 2013-02-15 17:50:33

+0

我的問題是一樣的,我想要的代碼,我可以從selectedRow – neeraj 2013-02-18 13:20:31

相關問題