ComponentOne:使用XMLDataSource的C1NavigationList数据绑定

时间:2011-10-03 14:32:22

标签: asp.net iphone xmldatasource componentone

在购物车系统的Iphone View功能的过程中,我正在尝试使用产品列表中的Iphone的ComponentOne工具来实现。我为此确定了C1NavigationList控件。

据我所知它是一个Hierarchical数据控件,我将它绑定到XML DataSource,因为我不需要任何子项,而是需要一个主项的集合,其中详细信息作为XML节点的属性如下: / p>

enter image description here

要求:我想在C1Navigation列表模板中定义一个布局,并且XPath绑定数据,如上面给定的屏幕抓取。

下面给出了我试图做但失败的代码。它抛出了错误:“数据绑定方法,如Eval(),XPath()和Bind()只能用于。 .. “。

我做错了什么?。请给我建议。

<asp:XmlDataSource ID="XmlDataSource1" runat="server" XPath="/NewDataSet/_x0028__x0028"

DataFile =“〜/ App_Data / Coffee of Copy ____ 1__0__0_0_d.xml”&gt;

<C1NavigationList:C1NavigationList ID="C1NavigationList1" 
  runat="server" DataSourceID="XmlDataSource1" Text="XMLDataSource"   NavigationListType="RoundedCornersList" TrackItemsStructure="false">

&lt;%#XPath(“@ item_smkt_desc”)%&gt;

1 个答案:

答案 0 :(得分:1)

我会使用for循环来代替XmlDataSource。然后你无论如何都可以更好地控制UI。我已经成功地使用了这种方法。这是我写你代码的方式:

System.Xml.Linq.XElement xEle = System.Xml.Linq.XElement.Load(Server.MapPath("~/App_Data/Copy of Coffee___1_0__0_0_d.xml"));
var items = from c in xEle.Elements("NewDataSet") select c;
foreach (System.Xml.Linq.XElement ele in items)
{
    C1.Web.iPhone.C1NavigationList.C1NavigationListItem li = new C1.Web.iPhone.C1NavigationList.C1NavigationListItem();
    li.Text = ele.Attribute("item_smkt_desc");
    C1NavigationList1.Items.Add(li);
}