访问对象中的 ASP.NET C# 评估数据绑定对象



>我有一个相当棘手的情况。我正在使用绑定到返回以下对象结构的 SOAP 数据源的 ASP:Repeater。

Path: Array[6]
0: Object
   Direction: "Departing"
   Message: ""
   Operator: "myciti"
   RouteColor: "#a7a9ac"
   RouteName: "Airport"
       Stop: Object
           Name: "JFK"
           Location: Object
   Name: "Airport"
   __proto__: Object
   Time: "07:10"
   Type: ""
   Vehicle: ""

我可以使用 Eval 轻松访问所有第一层变量,例如"时间":

  <%# Eval("Time")%>

我的问题是如何从 ASPX 页面访问仍在使用 EVAL 的嵌套对象?例如,我将如何获得此数组中具有值"JFK"的"Stop"对象的"名称"值?

尝试: <%# Eval("Stop.Name")%>

Eval 只是按名称获取属性的快捷方式。在某些情况下,它不会帮助你。例如,如果您的对象 RouteName 有时返回 null,该怎么办。

您需要使用:

<%# Container.DataItem.RouteName.Stop.Name %>

Container.DataItem 是一个对象,因此您可以从中访问几乎任何属性。

更好的方法是将该对象转换为更有意义的实例:

<%# Ctype(Container.DataItem, ReturnedSOAPObjectRecord).RouteName.Stop.Name %>

此方法使您能够检查空值。

<%# IF(Ctype(Container.DataItem, ReturnedSOAPObjectRecord).RouteName IsNot Nothing, Ctype(Container.DataItem, ReturnedSOAPObjectRecord).RouteName.Stop.Name, "No Stop" %>

相关内容

最新更新