2009-03-01 37 views

回答

5

你不需要一個數據表來綁定 - 你只需要像list/enumerable這樣的東西。例如,如果你知道行號:

DataRowView row = dt.DefaultView[1]; // second row 
detailsView1.DataSource = new DataRowView[] {row}; 
detailsView1.DataBind(); 

請注意,我們必須使用DataRowView(而不是DataRow),以獲得唯一的運行時性能(即從列中的數據)。如果你有一個DataRow,這種做法很容易被包裹在一個實用的方法,例如擴展方法:

public static DataRowView[] ForBinding(this DataRow row) 
{ 
    foreach (DataRowView rowView in row.Table.DefaultView) 
    { 
     if (ReferenceEquals(rowView.Row, row)) 
     { 
      return new DataRowView[] { rowView }; 
     } 
    } 
    throw new ArgumentException("Row not found in the default view", "row"); 
} 

有:

detailsView1.DataSource = row.ForBinding(); 
detailsView1.DataBind(); 
1

是的,這是最簡單的方法:)

恕我直言,如果你想只顯示1個字段,您可以使用輸出參數,但是如果您在細節視圖中顯示多個字段,它是最簡單的方法。

+0

更多的領域...但我還是謝謝你:) – akosch 2009-03-01 15:07:03

+0

後選擇一個數據表,過濾它更簡單? – Canavar 2009-03-01 19:01:06

相關問題