通过XElement绑定转发器

时间:2014-05-01 06:08:01

标签: c# asp.net

我尝试通过XElement绑定我的转发器。

在cs文件中

    public void BindList()
    {

        XElement element = LoadXMLElement(GetList()); //Get List is another process its not a problem  I got a list.
        rptrList.DataSource = from x in element.Descendants("List")
                                      select new { Value1 = x.Element("FileName"), Value2 = x.Element("URL"), Value3 = x.Element("Thumb") };
        rptrList.DataBind();

    }
    public  XElement LoadXMLElement(string xmlString)
    {
        XElement element = null;
        try
        {
            element = XElement.Parse(xmlString);

        }
        catch (Exception ex)
        {
            throw new Exception("Unable to parse string to xmlformat");
        }
        return element;
    }

在ascx中:

<asp:Repeater ID="rptrList" runat="server" 
                    onitemdatabound="rptrTemplateList_ItemDataBound">
                    <ItemTemplate>
                        <li>
                            <p>

                                <asp:Label ID="lblTemplateName" runat="server" Text='<%#Eval("FileName") %>'  />

                            </p>
                            <asp:Image ID="imgThubNail" runat="server" ImageUrl='<%#Eval("Thumb") %>' />
                            <br />
                        </li>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:Label ID="lblEmptyData" Text="No item To Display" runat="server" Visible="false">
                        </asp:Label>
                    </FooterTemplate>
                </asp:Repeater>

但是在ascx中Eval不起作用。我尝试XPath但没有运气。我尝试搜索但没有找到哪些帮助我。通过{{1}绑定转发器的正确​​方法是什么}。

2 个答案:

答案 0 :(得分:1)

Eval()次调用正在寻找FileNameThumb,但Linq to XML查询返回的对象包含Value1Value2和{{} 1}}。尝试更改查询...

Value3

答案 1 :(得分:0)

最好让查询返回XElements列表,而不是创建对象。

rptrList.DataSource = element.Descendants("List").Elements;
rptrList.DataBind();

将XElements发送到转发器后,您的ItemTemplate可能如下所示:

<%#CType(Container.DataItem, System.Xml.Linq.XElement).Attribute("FileName").Value%>
相关问题