2009-04-02 6 views
0

У меня есть Telerik RadTree, связанный с XMLDataSource. Я хочу, чтобы текст узла состоял из 2-х атрибутов (число и имя).Telerik RadTree привязан к XML DataSource

См <telerik:RadTreeNodeBinding>

Пример:

  • "? 1. Как ты?"
  • «2. Сколько вам лет?»

XML:

<questions> 
    <question name="How are you?" number="1" imageurl=""> 
    </question> 
    <question name="How old are you?" number="2" imageurl=""> 
    </question> 
</questions> 

ASPX:

<telerik:RadTreeView ID="RadTreeView1" runat="server">    
    <DataBindings> 
    <telerik:RadTreeNodeBinding DataMember="questions" Text="Questions" 
     ImageUrl="/questions.png" Expanded="false" /> 
    <telerik:RadTreeNodeBinding DataMember="question" 
     Text='[<%# DataBinder.Eval("number")%>].[<%# DataBinder.Eval("name")%>]' 
     ImageUrlField="imageurl" FormatString="{0}" Expanded="false" /> 
    </DataBindings> 
</telerik:RadTreeView> 

ответ

1

Решено: Я использую NodeTemplate, применяемый ко всем узлам, чтобы добавить «число». если найдено в XPath ...

<telerik:RadTreeView ID="RadTreeView1" runat="server"> 
    <NodeTemplate> 
      <%# XPath("@number", "{0}.") %> 
      <%# DataBinder.Eval(Container, "Text") %> 
    </NodeTemplate>    
    <DataBindings> 
     <telerik:RadTreeNodeBinding DataMember="questions" Text="Questions" ImageUrl="/questions.png" Expanded="false" /> 
     <telerik:RadTreeNodeBinding DataMember="question" TextField="name" ImageUrlField="kpiimageurl" FormatString="{0}" Expanded="false" /> 
    </DataBindings> 
</telerik:RadTreeView> 
1

havn't испытал это, но дать ей идти:

XML:

<questions> 
    <question name="How are you?" number="1" imageurl=""></question> 
    <question name="How old are you?" number="2" imageurl=""></question> 
</questions> 

ASPX:

+0

Спасибо CKret, кажется, близко, но ... Там нет DataItem собственности на контейнер. Я думаю, что если я могу указать что-то вроде: DataBinder.Eval (Container.Attribute, "name") – Konrad

+0

возможно DataBinder.Eval (Container, "DataItem.name") –