0

ご挨拶!

パネルの可視性を切り替えるためのブール値として使用したい XML 値があります。私はこのようなものを持っています:

<asp:FormView id="MyFormView" runat="server" DataSourceID="MyXmlDataSource">
    <ItemTemplate>
        <!-- some stuff -->
        <asp:Panel id="MyPanel" runat="server" Visible='<%# (bool)XPath("Menu/Show") %>'>
        </asp:Panel>
        <!-- some more stuff -->
    </ItemTemplate>
</asp:FormView>
<asp:XmlDataSource id="MyXmlDataSource" runat="sever" DataFile="MyFile.xml" />

ただし、これは例外をスローします。XML の Show の値を「true」、「True」、「0」に設定しようとしましたが、役に立ちませんでした。これは可能ですか?<%# (bool)XPath("Menu/Show") %> を外側に移動して、その値を確認できるようにしたため、私の XPath は確実に機能し、正しいものです。私はこれを試しました:

<%#((bool)XPath("Menu/Show")).ToString() %>

しかし、これも例外をスローします。

ありがとう。

4

5 に答える 5

1

試す<%#(Convert.ToBoolean(XPath("Menu/Show"))) %>

于 2008-12-09T01:33:45.397 に答える
1

xpathが文字列を返す場合は、 Boolean.Parse(XPath( "Menu / Show"))を使用しないでください。

于 2008-12-09T01:34:49.543 に答える
1

さらに別の:

System.Xml.XmlConvert.ToBoolean()

有効な文字列は、 true の場合は「1」または「true」、falseの場合は「0」または「false」です

ブール値に変換する最もあいまいな方法を持つことでボーナス ポイントを獲得できますか?

于 2008-12-09T02:01:45.370 に答える
0

これを試して:

従来のASPでの文字列の同等性の構文はわかりませんが、文字列の比較を行ってから、trueまたはfalseを返す必要があります。

... Visible ='<%#XPath( "Menu / Show"))。ToString()。equals( "0")?trueを返します:false%>'..。

于 2008-12-09T01:33:52.010 に答える
0

Visible='<%# (XPath("Menu/Show")) as string == "1" ? true : false %>'

null例外に注意してください。.ToString() の代わりに「文字列として」を使用する

于 2009-08-20T22:20:14.703 に答える