問題をコードASP.Netメニューデータバインディング
-
24-09-2019 - |
質問
私はを介してデータをバインドするメニューがあります:
XmlDataSource xmlData = new XmlDataSource();
xmlData.DataFile = String.Format(@"{0}{1}\Navigation.xml", getXmlPath(), getLanguage());
xmlData.XPath = @"/Items/Item";
TopNavigation.DataSource = xmlData;
TopNavigation.DataBind();
私のXMLは、特殊文字を持っているとき、私はフランス語の単語をたくさん使用しているため問題は、あるます。
代替私は、次のコードを使用して、代わりにストリームを使用して、特殊文字を取得するためにエンコード使用してみましたとおります:
StreamReader strm = new StreamReader(String.Format(@"{0}{1}\Navigation.xml", getXmlPath(), getLanguage()), Encoding.GetEncoding(1254));
XmlDocument xDoc = new XmlDocument();
xDoc.Load(strm);
XmlDataSource xmlData = new XmlDataSource();
xmlData.ID = "TopNav";
xmlData.Data = xDoc.InnerXml;
xmlData.XPath = @"/Items/Item";
TopNavigation.Items.Clear();
TopNavigation.DataSource = xmlData;
TopNavigation.DataBind();
私が今抱えている問題は、私は、ストリームが読み込まれますパスを変更したときに私のデータが更新されないということです。
私はそれがないコードによってではなく、私のページにスキップするときます。
のデータがリフレッシュされ、TE事はどちらかであるので、どのように私はのですか?または(実際に好まれている)どのように私は、右のコードの最初の部分にエンコードするのですか?
ヘルプは非常にapreciatedされる!
EDITます:
私は、それが属性で要素を指定することはできませんので、しかし、私は属性で働いている、私のXMLをCDATAソリューションを試します:
<?xml version="1.0" encoding="utf-8" ?>
<Items Text="">
<Item Text="Actualités>"/>
<Item Text="Matériau">
<Item Text="Arsenal"/>
<Item Text="Vêtements"/>
</Item>
<Item Text="Links"/>
</Items>
他のアイデア?
解決 2
私は私の問題を解決します。
私はUTF8の代わりに、ANSI(デフォルト)に++メモ帳に私のxmlファイルのエンコーディングを変更し、それが問題を解決します。
とにかく回答をお寄せいただきありがとうございます。
他のヒント
<![CDATA [...]]>タグ
とフランス語の単語を包むようにしてくださいこの場合、XMLは、あなたの特別な文字を解析しません。
所属していません StackOverflow