2010-12-03 17 views
1

J'ai des données qui contiennent des chevrons dans certains des champs.Le contrôle TreeView ASP.NET ne gère pas les chevrons dans les données

Même si bien réussi à sortir &lt: ou > (ou même les codes hexadécimaux), dans Visual Studio 2005 ASP.Net, les données sur le terrain est tronqué à la première équerre. Si je remplace les données avec des accolades, il s'affiche très bien.

Exemple de données (sans échappement):

<ITReview><row TopNode="REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/><row TopNode="REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/></ITReview><ITReview><row TopNode="REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/><row TopNode="REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>"/></ITReview>

Exemple de données (échappé):

<ITReview> 
<row TopNode="REQ 123456&#x09;TT Description&#x09;&lt;Date sent to app dev&gt;&#x09;&lt;Priority&gt;&#x09;&lt;SubTask Status&gt;"/> 
<row TopNode="REQ 456789&#x09;TT Description&#x09;&lt;Date sent to app dev&gt;&#x09;&lt;Priority&gt;&#x09;&lt;SubTask Status&gt;"/> 
</ITReview> 

Ne pas faire quoi que ce soit difficile, liant le TreeView à un XmlDataSource avec le jeu de nom de fichier, et spécifiant la liaison en tant que DataMember = row et TextField = TopNode.

Je n'ai rien trouvé en ligne, mais bien sûr, la recherche de "angle" augmente simplement le nombre de résultats, pas les diminue.

Quelqu'un voit quelque chose comme ça? Vous connaissez une solution de contournement ou une solution? ASP.Net v2.0.50727.

Mise à jour: exemple du CDATA que j'ai utilisé, comme suggéré. N'a pas fonctionné.

<ITReview> <TopNode> <MainData> <![CDATA[REQ 123456 TT Description <Date sent to app dev> <Priority> <SubTask Status>]]> </MainData> </TopNode> <TopNode> <MainData> <![CDATA[REQ 456789 TT Description <Date sent to app dev> <Priority> <SubTask Status>]]> </MainData> </TopNode> </ITReview>

Répondre

0

Si je double coder les équerres, cela semble fonctionner, du moins ce que je pense que vous cherchez. Donc &amp;lt; au lieu de <

Je cherchais la cause de cette pensée, il pourrait y avoir un réglage que vous pourriez changer. Il semble que cela provienne de la propriété Value de la classe XmlAttribute, mais je ne vois pas comment l'éteindre.

+0

Par George, ça marche! Merci! On dirait un problème d'analyseur légèrement obscur. Je peux le signaler à MS, juste pour information. –

0

Essayez d'écrire dehors dans le contexte d'un HTMLEncode()

0

Pouvez-vous modifier le XML source, telle qu'au lieu d'avoir vos données dans le TopNode = « » attribut, vous avez <row><TopNode><![CDATA[long string]]></TopNode></row> ?

+0

Très bonne idée. Malheureusement, ça n'a pas marché –