【问题标题】:How does Databind consume a DataReaderDatabind 如何使用 DataReader
【发布时间】:2008-10-08 18:22:31
【问题描述】:

如果页面上有一个控件,其 Datasource 设置为 DataReader,该控件是否在设置 Datasource 时使用读取器,或者 datareader 是否继续存在直到 Databind 执行?

当 Databind 执行时,幕后究竟发生了什么?

【问题讨论】:

    标签: asp.net data-binding


    【解决方案1】:

    根据控件,DataBind() 将数据绑定到 控制。它通过遍历 DataSource 并创建 所需的 Html 和其他控件。

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

    稍后在 DropDownList 上调用 Render 方法,该方法返回 选择标签的 HTML。它还通过以下方式为每个 ListItem 创建 Html 在 Select 标签内返回 Option 标签。

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

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

    【讨论】:

      【解决方案2】:

      应该在 DataBind 执行的时候消耗掉。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多