1

Asp.netには、「Amount」という列を持つリストビューがあります。負の数は(111.111)として表示され、正の数は111.11として表示されます。数値を小数で右揃えにするにはどうすればよいですか?括弧がなければ簡単でしょう。ただし、これは要件です。

ありがとう

4

2 に答える 2

1

数値が負でない場合は、括弧の色を背景と同じにします。右揃え。

   <asp:ListView ID="MainListView" runat="server">
        <LayoutTemplate>
            <table style="text-align:right;">
                <tr id="ItemPlaceholder" runat="server" />
            </table>
        </LayoutTemplate>
        <ItemTemplate>
            <tr>
                <td>
                    <span runat="server" style='<%# GetStyle() %>'>(</span>
                    <%# Eval("Item") %>
                    <span runat="server" style='<%# GetStyle() %>'>)</span>
                </td>
            </tr>
        </ItemTemplate>
    </asp:ListView>

    protected void Page_Load(object sender, EventArgs e)
    {
        var values = new[] { 
            new { Item = 123.12},
            new { Item = -133.34}
        };

        MainListView.DataSource = values;
        MainListView.DataBind();
    }

    protected string GetStyle()
    {
        if ((double)Eval("Item") < 0)
            return string.Empty;
        else
            return "color: white;";
    }
于 2012-12-31T21:53:10.787 に答える
0

それは難しいでしょう。

この問題を解決するために私が手に負えないと考えることができる2つの方法があります。

  1. 値を2つの列に分割します。小数点の前にあるものを含む最初の列を右揃えにします。10進数と末尾の数字を含む2番目の列を左揃えにします。これの欠点は、2つの異なるセルにあることです。つまり、コンテンツをダブルクリックしてコピーして貼り付けることはできません。

  2. Graphics.MeasureStringカラムに配置する必要のあるパディングのピクセル数を正確に計算するために使用します。

于 2012-12-31T20:22:09.773 に答える