2011-02-04 4 views
1

朝は、すべて私が頻繁に古いサーバータグ

<asp:Label ID="lblWas" runat="server" Text='<%# XPath("FACEVALUE") %>'></asp:Label> 

事のこのタイプを使用しています。私が最初にそれを見つけたとき、私はそれを愛していました、私は今日それをもう一度使っていますが、それほど単純ではありません。

私は達成したいことがいくつかあります。

  1. 値に書式を適用します。私が期待し、それも可能だ場合は数1のために、私は構文が正しく取得できないとしてオプション番号2の場合Text='<%# string.Format(XPath("FACEVALUE"), "{0:c}") %>'>
  2. <asp:LinkButton ID="lnkBook" runat="server" PostBackUrl='/THEATRE/' + XPath("FACEVALUE")>Book</asp:LinkButton>

のようなURLではありません。

私はGoogleで適切なものを見つけることができませんでした。うまくいけば、私が達成しようとしているのは、この例から明らかです。

答えて

1

TemplateControlを使用できます。 XPath(string xPathExpression, string format)オーバーライド:

<asp:Label Text='<%# XPath("FACEVALUE", "{0:c}") %>' /> 
<asp:LinkButton Text="..." PostBackUrl='<%# XPath("FACEVALUE", "/THEATRE/{0}") %>' /> 

あなたが見ることができるように、あなたはXPathのメソッドに直接書式を渡すことができますので、String.Formatのを使用する必要はありません!

+1

XPathは実際にはフォーマット表現を取っているので、これは単純に私のフォーマット表現を無視しています。渡される値は55で、 "{0:C}"を使用すると60が出力されます。私を無視していませんが、私は£55を期待していました:) – Robert

+1

文字列が文字列であるため、それは金銭的価値として表示されます。 – Robert

1

私はあなたが構文を台無しにしている、#1のためと信じて、あなたは#2について

Text='<%# string.Format("{0:c}", XPath("FACEVALUE")) %>' 

またはText='<%# XPath("FACEVALUE", "{0:c}") %>'

を使用したい、あなたは式をデータバインディングを使用する必要が

<asp:LinkButton ID="lnkBook" runat="server" PostBackUrl='<%# "/THEATRE/" + XPath("FACEVALUE")%>'>Book</asp:LinkButton> 
0

まずはText='<%# string.Format("{0:c}",XPath("FACEVALUE")) %>'>

とする必要があります。 2番目のものは

<asp:LinkButton ID="lnkBook" runat="server" PostBackUrl='/THEATRE/ + <%# XPath("FACEVALUE") %>'>Book</asp:LinkButton>