Databind如何使用数据读取器

问题描述:

如果我的数据源设置为DataReader的页面上有控件,那么在设置数据源时该控件是否消耗读取器,或者数据读取器是否继续存在,直到Databind具有被执行?Databind如何使用数据读取器

执行Databind时实际发生了什么?

根据控件的不同,DataBind()会将数据绑定到 控件。它通过遍历DataSource并创建需要的Html和其他控件来完成此操作。

对于DropDownList,DataBind()将为DataSet中的每个 记录或ArrayList中的每个元素创建ListItem。

后来Render方法在DropDownList上调用,它返回一个Select标签的 Html。它还通过 在Select标签内返回选项标签来为每个ListItem创建Html。

对于标签,DataBind()会将文本设置为您从数据库中的 中提取的值(例如)。

如果您不针对特定控件调用DataBind(),则还可以使用 确保将DataSource设置为一个控件并调用 Page.DataBind()。这将通过页面中的控件和调用每个控件的所有DataBinds。

它应该在DataBind执行时被使用。

数据绑定期间对数据读取器进行的控制是什么?它是否将其复制到其内部结构中并处理DataReader然后渲染?

如果我在页面上有10个控件,并将每个数据源设置为不同的数据读取器,然后调用page.databind,则数据读取器是否会存在整个时间(从创建点开始直到page.databind完成它的处理)?