2008-10-08 134 views
1

如果我的數據源設置爲DataReader的頁面上有控件,那麼在設置數據源時該控件是否消耗讀取器,或者數據讀取器是否繼續存在,直到Databind具有被執行?Databind如何使用數據讀取器

執行Databind時實際發生了什麼?

回答

1

根據控件的不同,DataBind()會將數據綁定到 控件。它通過遍歷DataSource並創建需要的Html和其他控件來完成此操作。

對於DropDownList,DataBind()將爲DataSet中的每個 記錄或ArrayList中的每個元素創建ListItem。

後來Render方法在DropDownList上調用,它返回一個Select標籤的 Html。它還通過 在Select標籤內返回選項標籤來爲每個ListItem創建Html。

對於標籤,DataBind()會將文本設置爲您從數據庫中的 中提取的值(例如)。

如果您不針對特定控件調用DataBind(),則還可以使用 確保將DataSource設置爲一個控件並調用 Page.DataBind()。這將通過頁面中的控件和調用每個控件的所有DataBinds。

1

它應該在DataBind執行時被使用。

0

數據綁定期間對數據讀取器進行的控制是什麼?它是否將其複製到其內部結構中並處理DataReader然後渲染?

如果我在頁面上有10個控件,並將每個數據源設置爲不同的數據讀取器,然後調用page.databind,則數據讀取器是否會存在整個時間(從創建點開始直到page.databind完成它的處理)?