>我有一个相当棘手的情况。我正在使用绑定到返回以下对象结构的 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" %>