ASP.Net Linq Databinding未按预期显示数据

时间:2012-03-01 18:07:31

标签: asp.net linq data-binding

我正在尝试将一些信息数据绑定到转发器,但它似乎向我显示数据但不是我期望的方式

这是我得到的数据

     Value      Xml      HasAttributes    HasElements     IsEmpty    Value
         1        1              False          False       False        1
12/12/2006        1              False          False       False        1

但我想得到的数据是这样的

     ADULTS         DEPARTURE_DATE
          1             12/12/2006

这是我的LINQ和ASP.Net

Dim xel = XElement.Parse(xmlstring)

Dim flights = xel.Descendants("Flights")            
Dim tests = flights.Where(Function(f) DateTime _
.Parse(f.Descendants("DEPARTURE_DATE").Value).Date <= DateTime.Now.Date) _
.OrderBy(Function(f) f.Descendants("DEPARTURE_DATE").Value)_
.ThenBy(Function(f) f.Descendants("DEPARTURE_TIME").Value)

CType(e.Item.FindControl("Repeater"), Repeater).DataSource = tests  _ 
.Descendants().Elements()
CType(e.Item.FindControl("Repeater"), Repeater).DataBind()

以下是一些示例XML

<booking>
    <travel>
        <flights>
            <flight id="1">
                <adults>1</adults>
                <departure_date>12/12/2006</departure_date>
                <departure_time>08:05</departure_time>
            </flight>
        </flights>
    </travel>
</booking>

字符串xmlstring是上面的XML。

这是我的转发器

<asp:Repeater ID="Repeater" runat="server">
    <ItemTemplate>

        <%# DataBinder.Eval(Container.DataItem, "DEPARTURE_DATE") %>

    </ItemTemplate>
</asp:Repeater>

它只是说数据源中没有字段DEPARTURE_DATE

如果有的话,有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试将您的查询更改为此类内容......

.Select(Function(f)  new with { .DEPARTURE_DATE = f.Descendants("DEPARTURE_DATE").Value })

答案 1 :(得分:0)

使用此

更改您的代码
 <%# DataBinder.Eval(Container.DataItem, "DEPARTURE_DATE") %> 

否则 更改您的查询

.select(p=> new DATE =DEPARTURE_DATE)