1

次のような列を持つグリッドビューがあります。

<asp:TemplateField HeaderStyle-Width="75px">
     <HeaderTemplate>
         <asp:Label ID="lblHM1" Text="Hm1" runat="server"></asp:Label>
     </HeaderTemplate>
     <ItemTemplate>
         <asp:Label ID="lblM1" Text='<%# Eval("m1","{0:#0}")%>' runat="server">
          </asp:Label>
     </ItemTemplate>
</asp:TemplateField>

この列の数値は 1000 を超えることが多いので、そのようにフォーマットしたいと思います。たとえば、この列のデータが の場合、11359数値を として書式設定したいと思います11,359

私は次のことを試みました:

<asp:TemplateField HeaderStyle-Width="75px">
     <HeaderTemplate>
         <asp:Label ID="lblHM1" Text="Hm1" runat="server"></asp:Label>
     </HeaderTemplate>
     <ItemTemplate>
         <asp:Label ID="lblM1" Text='<%# Eval("m1","{0:N0}")%>' runat="server">
          </asp:Label>
     </ItemTemplate>
</asp:TemplateField>

しかし、上記は例外を生成します: Input string was not in a correct format

私は何を間違っていますか?

4

3 に答える 3

3

あなたがすることができます:

 <asp:Label ID="lblM1" Text='<%# Eval("m1","{0:0,0}")%>' runat="server"></asp:Label>

これは、11239 を「11.239」としてフォーマットする必要があります。グループ区切り記号は、文化によって異なります。

ドキュメントを見てください:

, カスタム指定子

標準数値フォーマット文字列

カスタム数値フォーマット文字列

編集:ちなみに、それはまったく別の理由かもしれません。あるカルチャでデータを送信している可能性がありますが、.Net は互換性のない別のカルチャで解析しようとしています。

于 2013-03-11T17:25:03.940 に答える
0

私はあなたのフォーマットを試してみましたが、うまくいきました、ありがとう:)

次のように変更して、それがうまくいくかどうか試してください。

'>

Eval の代わりに DataBinder.EVal を使用します。

于 2013-08-12T06:01:57.513 に答える
0

単にこれを使用してください-

Text='<%# Eval("m1","{0:0,0}") %>'
于 2014-06-28T09:44:28.140 に答える