ComponentOne: привязка данных C1NavigationList с использованием XMLDataSource - PullRequest
0 голосов
/ 03 октября 2011

В процессе Iphone View для системы корзины покупок, где я пытаюсь реализовать использование инструментов ComponentOne для Iphone в списке продуктов. Для которых я определил элемент управления C1NavigationList для того же.

Поскольку я понимаю, что это иерархический элемент управления данными, я связываю его с источником данных XML, так как мне не нужны никакие вложенные элементы, а набор основных элементов, детали которых в виде атрибутов узла XML приведены ниже:

enter image description here

Требование: Я хотел бы определить макет в шаблоне списка навигации C1, а XPath привязать данные, как в приведенном выше снимке экрана.

Ниже приведен код, который я пытался сделать, но не смог. Он выдает ошибку: « Методы привязки данных, такие как Eval (), XPath () и Bind (), могут использоваться только в. ..".

Что я делаю не так? Пожалуйста, посоветуйте мне.

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

DataFile = "~ / App_Data / Copy of Coffee ____ 1__0__0_0_d.xml">

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

<% # XPath ("@ item_smkt_desc")%>

1 Ответ

1 голос
/ 05 октября 2011

Я бы использовал цикл for вместо XmlDataSource.Тогда у вас будет больше контроля над интерфейсом в любом случае.Я использовал этот метод довольно успешно.Вот как бы я написал вам код:

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);
}
...