ComponentOne: привязка данных C1NavigationList с использованием XMLDataSource
В процессе Iphone View для системы корзины покупок, где я пытаюсь реализовать, используя инструменты ComponentOne для Iphone в списке продуктов. Для которых я определил элемент управления C1NavigationList для того же самого.
Как я понимаю, это иерархический элемент управления данными, я связываю его с источником данных XML, так как мне не нужны никакие подпункты, а есть коллекция основных элементов, детали которых в виде атрибутов узла XML приведены ниже:
Требование: я хотел бы определить макет в шаблоне списка C1Navigation, а 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 ответ
Я бы использовал цикл 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);
}