TreeNodeBinding показывает внутренний текст всех дочерних узлов - PullRequest
0 голосов
/ 21 марта 2011

Много времени я потратил на эту ситуацию.может кто-нибудь может мне помочь?У меня есть элемент управления TreeView на странице ASP.Net, и данные будут заполняться привязкой данных с использованием XMLDataSource.

<asp:TreeView id="treeview1" runat="server" DataSourceID="xmlDataSource1">
                <DataBindings>
                    <asp:TreeNodeBinding DataMember="All" TextField="#InnerText"   />
                    <asp:TreeNodeBinding DataMember="Categorie" TextField="#InnerText"   />
                    <asp:TreeNodeBinding DataMember="Question" TextField="#InnerText" ValueField="id" />
                </DataBindings>
</asp:TreeView>

Документ XML-данных выглядит следующим образом:

<All>
  <ProjectName>
    Project A
    <Categorie>
      Cat A1
      <Question id="1">Q1</Question>
      <Question id="2">Q2</Question>
    </Categorie>
  </ProjectName>
</All>

При отображении страницы выводом является то, что все узлы показывают также текст элемента дочерних узлов.Вывод:

- Project ACatA1Q1Q2
    - Cat A1Q1Q2
        - Q1
        - Q2

Ситуация такова: как удалить текст дочерних узлов?Итак, выходные данные должны быть:

- Project A
    - Cat A
        - Q1
        - Q2

Это похоже на что-то не так с TreeNodeBinding.Но изменение TextField на пример «Значение» не работает (пустой текст узла).

Я не использую файл преобразования XSLT.Xml будет передан непосредственно XmlDataSource.

Спасибо.

1 Ответ

0 голосов
/ 21 марта 2011

Я думаю, что вы должны использовать атрибуты вместо внутреннего текста:

<All>
  <Project Name="Project A">
    <Categorie Name="Cat A1">
      <Question id="1" Name="Q1"></Question>
    </Categorie>
  </Project>
</All>

и затем связываться с атрибутами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...