3
我在WinForms中使用DataGrid類並使用RowFilter過濾數據。獲取已過濾DataGrid中選定行的索引
//docRows = some DataTable
dgDocRow.DataSource = docRows;
docRows.DefaultView.RowFilter = "WHERE ID > 1"
現在窗格只顯示過濾的行
當我想訪問網格所選行,我用
int i = docRows.CurrentRowIndex;
DataRow dr = ((DataTable)docRows.DataSource).Rows[i];
然而,這將返回不正確的數據,因爲docRows.CurrentRowIndex
給我指標在已過濾的DataGrid中,並使用((DataTable)docRows.DataSource).Rows[i]
從原始DataSource中進行選擇,該數據源未經過濾。
如何在新的過濾數據源中獲取正確的行/ rowindex? (不通過全表,迭代這是我要做的事現在)
感謝,茲比涅克
不幸的是,這不適用於我 - dgDocRow沒有屬性DataMember - 可能是由於使用.NET 3.5? 我開發的應用程序是針對Windows CE的,所以我必須在VS 2008中開發它,新版本不支持Compact Framework – Zbynek 2014-11-25 13:55:19
嘗試傳遞string.Empty而不是DataMember。 – 2014-11-25 13:59:22
Wonderfull!萬分感謝。 – Zbynek 2014-11-25 14:06:17