我有一個查詢使用linq到SQL,其結果將顯示在排序和過濾選項的datagridview。在datagridview中排序和過濾IQueryable
public IQueryable RegresaDepositosBancarios()
{
var depositos = from d in context.depositos_bancarios
where d.Aplicado == false
orderby d.FechaDeposito ascending
select new
{
d.IDDeposito,
d.cuentas_bancarias.Nombre,
d.Monto,
d.FechaDeposito,
d.Observaciones
};
return depositos ;
}
後來在我的代碼中,我將數據源設置爲使用以前的結果。
var depositos = operaciones.RegresaDepositosBancarios();
dataGrid_depositos.DataSource = depositos;
正如您所看到的,我正在返回並且匿名類型爲IQueryable,而且我無法對此進行排序或篩選。我讀過,你可以實現一個自定義的函數來將IQueryable轉換爲DataView,然後使用RowFilter屬性,這樣做更有效嗎?可以更好地返回其他類型在我的功能?
任何建議,歡迎
http://stackoverflow.com/questions/487870/allow-user-to-sort-columns-from-a-linq-query-in-a-datagridview – 2012-01-30 21:13:27
所以該方法(在鏈接描述給定)你認爲在我的情況下更合適嗎? SortableBindingList或將結果轉換爲DataTable? – 2012-01-30 22:58:03
我必須承認,我從來沒有使用DataGridView作爲DataSource的LINQ。但是這兩種方法似乎都有優點和缺點,其中一種可能更快並且類型安全,另一種方法更慢(使用反射),但更容易維護。 – 2012-01-30 23:09:29