【发布时间】:2008-10-08 18:22:31
【问题描述】:
如果页面上有一个控件,其 Datasource 设置为 DataReader,该控件是否在设置 Datasource 时使用读取器,或者 datareader 是否继续存在直到 Databind 执行?
当 Databind 执行时,幕后究竟发生了什么?
【问题讨论】:
标签: asp.net data-binding
如果页面上有一个控件,其 Datasource 设置为 DataReader,该控件是否在设置 Datasource 时使用读取器,或者 datareader 是否继续存在直到 Databind 执行?
当 Databind 执行时,幕后究竟发生了什么?
【问题讨论】:
标签: asp.net data-binding
根据控件,DataBind() 将数据绑定到 控制。它通过遍历 DataSource 并创建 所需的 Html 和其他控件。
对于 DropDownList,DataBind() 将为每个 记录在 DataSet 或 ArrayList 中的每个元素中。
稍后在 DropDownList 上调用 Render 方法,该方法返回 选择标签的 HTML。它还通过以下方式为每个 ListItem 创建 Html 在 Select 标签内返回 Option 标签。
对于标签,DataBind() 会将 Text 设置为您从中提取的值 数据库(例如)。
如果不为特定控件调用DataBind(),也可以 确保您的 DataSource 设置为控件并调用 Page.DataBind()。这将通过页面中的控件和 调用每个控件的所有 DataBinds。
【讨论】:
应该在 DataBind 执行的时候消耗掉。
【讨论】:
在数据绑定期间控件对数据读取器做了什么?它是否将其复制到其内部结构中并处理数据读取器然后渲染?
如果我在一个页面上有 10 个控件并将每个控件上的数据源设置为不同的数据读取器,然后调用 page.databind,数据读取器是否会一直存在(从创建点到 page.databind 完成的点正在处理中)?
【讨论】: