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”,但无济于事。这甚至可能吗?我的 XPath 确实有效,因为我尝试将 <%# (bool)XPath("Menu/Show") %> 移到外面,以便我可以看到它的值并且它是正确的。我试过这个:

<%#((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" ? 真:假 %>'

谨防空异常。使用“作为字符串”而不是 .ToString()

于 2009-08-20T22:20:14.703 回答