於是想說除了 DataView 以外,是否還支援其他類型?
首先來看一下 DataSource 始祖 BaseDataBoundControl.DataSource 定義
「設定 DataSource 屬性後,會呼叫 ValidateDataSource 方法。此外,如果資料繫結控制項已初始化,則會呼叫 OnDataPropertyChanged 方法,將 RequiresDataBinding 屬性設定為 true。」
似乎沒講到 object 可支援的類型
再來看一下上述的句子中所提到的 ValidateDataSource 定義
「要驗證的物件。通常是 IEnumerable、IListSource、IDataSource 或 IHierarchicalDatasource 的執行個體。」
這邊很明確的指出 DataSource 應該會支援以上四種泛型資料
ok~實驗開始
先在畫面上放個擁有 DataSource 屬性的 WebControl (這邊是放ListBox)再放上兩個觸發事件的 Button
第一個 Button 事件,寫下呼叫 System.IO.Directory.GetFiles 方法
製造一個 String Array,再將 Array 傳給 ListBox1.DataSource
第二個 Button 事件則是傳入一個字串給 ListBox1
DataSource 來源為 String Array,恩~可以做 DataBind
但當來源為字串時,非但沒有出錯
還將 hello world 切成 array來顯示!!! (據測試,應為 CharArray )
看來 .NET 會自動的將字串轉為 CharArray 再進行 DataBind 的動作
坎尼再用 Gridview 來看一下繫結的欄位是啥~ 疑~ Item?
可是當坎尼自己建立個欄位,並將 DataField 設為 Item 時
此時反倒是出現錯誤:「找不到欄位 Item」(還真是令人搞不懂
不過坎尼此時也發覺到,雖然 DataSource 有這些特性
平常 Coding 用到的機率少之又少,於是就此打住
會用到的作法大概就是列出清單之類的 (如範例中的檔案清單
沒有留言:
張貼留言