【问题标题】:DataBinding Scope in asp.netasp.net 中的数据绑定范围
【发布时间】:2012-11-03 01:01:08
【问题描述】:

这可能是我可以自己测试的事情之一,但我想从比我更了解数据绑定的人那里获得更具包容性的答案。我自己更像是一个模型密集型 MVC 人,所以我对 asp.net 数据绑定的整个概念有点新。

这就是我所理解的:您将一个控件或整个页面绑定到一个数据源,然后您可以使用DataBinder 类来帮助在运行时解析数据。

我不太明白的是范围。例如,我最近继承的遗留应用程序有很多这样的行:

DataBinder.Eval(Container.DataItem, "saved_offer_id");

但我很困惑 asp.net 如何知道在哪里可以找到 saved_offer_id 键。例如,假设我们有两个中继器,如下所示:

<asp:Repeater id="repeater1">
     <span>My offer ID is <# DataBinder.Eval(Container.DataItem, "saved_offer_id") %></span>
</asp:Repeater>

<asp:Repeater id="repeater2">
     <span>My offer ID is <# DataBinder.Eval(Container.DataItem, "saved_offer_id") %></span>
</asp:Repeater>

假设每个中继器都有自己的数据源。 DataBinder 如何知道要查看哪个数据源?是否存在这两个转发器可能显示不同的商品 ID 值的情况?

【问题讨论】:

  • DataBinder 使用与其父对象关联的 DataSource
  • @AntLaC 这正是我想要的。不过,这又带来了另一个问题。嵌套控件呢?就像中继器中的中继器一样,都有自己的数据源。那么嵌套中继器是否可以访问这两个源?
  • 不是真的,不是我相信你的问题在问的意义上。嵌套阅读器可以读取其父阅读器的当前记录的值
  • @AntLaC 好的,谢谢。还有一个问题。我知道(多亏了你)它使用了它的父控件的数据源,但是它怎么知道它的父控件是什么?我猜&lt;# ... %&gt; 块可以同时访问服务器和 DOM?
  • 我不确定确切的技术原因,但基本上它包含的任何控件都是它的父级。如果您查看呈现的 HTML,您将看到转发器内的控件如何在其 ID 中添加转发器名称前缀

标签: c# asp.net data-binding scope


【解决方案1】:

DataBinder 使用与其父对象关联的 DataSource。

嵌套读取器可以读取其父读取器的当前记录的值。

【讨论】:

    猜你喜欢
    • 2013-03-01
    • 2014-08-16
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多