Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Listview按小数点对齐货币_Asp.net - Fatal编程技术网

Asp.net Listview按小数点对齐货币

Asp.net Listview按小数点对齐货币,asp.net,Asp.net,在Asp.net中,我有一个listview,它有一个名为“Amount”的列。负数显示为(111.111),正数显示为111.11。如何右对齐小数点上的数字?如果没有括号,那就容易了。然而,这是一项要求 谢谢这会很棘手 我可以马上想到两种方法来解决这个问题 将值拆分为两列。右对齐包含小数点前任何内容的第一列。左对齐包含小数点和任何尾随数字的第二列。这样做的缺点是它位于两个不同的单元格中,这意味着您不能简单地双击内容来复制和粘贴它,等等 使用Graphics.MeasureString精确计算需

在Asp.net中,我有一个listview,它有一个名为“Amount”的列。负数显示为(111.111),正数显示为111.11。如何右对齐小数点上的数字?如果没有括号,那就容易了。然而,这是一项要求


谢谢

这会很棘手

我可以马上想到两种方法来解决这个问题

  • 将值拆分为两列。右对齐包含小数点前任何内容的第一列。左对齐包含小数点和任何尾随数字的第二列。这样做的缺点是它位于两个不同的单元格中,这意味着您不能简单地双击内容来复制和粘贴它,等等

  • 使用
    Graphics.MeasureString
    精确计算需要在列上添加多少像素的填充


  • 这将是一个棘手的问题

    我可以马上想到两种方法来解决这个问题

  • 将值拆分为两列。右对齐包含小数点前任何内容的第一列。左对齐包含小数点和任何尾随数字的第二列。这样做的缺点是它位于两个不同的单元格中,这意味着您不能简单地双击内容来复制和粘贴它,等等

  • 使用
    Graphics.MeasureString
    精确计算需要在列上添加多少像素的填充


  • 当数字为非负数时,括号的颜色与背景颜色相同。右对齐

       <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;";
        }
    
    
    (
    )
    受保护的无效页面加载(对象发送方、事件参数e)
    {
    var值=新[]{
    新{Item=123.12},
    新{Item=-133.34}
    };
    MainListView.DataSource=值;
    MainListView.DataBind();
    }
    受保护的字符串GetStyle()
    {
    如果((双重)评估(“项目”)<0)
    返回字符串。空;
    其他的
    返回“颜色:白色;”;
    }
    
    当数字为非负数时,将括号涂成与背景相同的颜色。右对齐

       <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;";
        }
    
    
    (
    )
    受保护的无效页面加载(对象发送方、事件参数e)
    {
    var值=新[]{
    新{Item=123.12},
    新{Item=-133.34}
    };
    MainListView.DataSource=值;
    MainListView.DataBind();
    }
    受保护的字符串GetStyle()
    {
    如果((双重)评估(“项目”)<0)
    返回字符串。空;
    其他的
    返回“颜色:白色;”;
    }
    
    您的意思是仅仅正确对齐列是不够的吗?您需要将
    111.11
    值填充到数字与
    (111.111)
    值完全对齐的位置?下面是一个堆栈帖子,可以解决这个问题:是的。我试图将(111.11)与小数点上的111.11对齐。我不知道在Listview中该怎么做。你是说仅仅正确对齐列是不够的吗?您需要将
    111.11
    值填充到数字与
    (111.111)
    值完全对齐的位置?下面是一个堆栈帖子,可以解决这个问题:是的。我试图将(111.11)与小数点上的111.11对齐。不确定如何在Listview中执行此操作。如何确定Listview项是否为正数,以便添加填充?是否可以在itembound期间使用If语句?是的,您可以在
    ListView
    ItemDataBound
    事件期间进行检查。查看这篇文章进一步解释:如何确定listview项是否为正数,以便添加填充?是否可以在itembound期间使用If语句?是的,您可以在
    ListView
    ItemDataBound
    事件期间进行检查。查看这篇文章以获得进一步的解释:是否有方法根据浏览器(如IE、chorme、Firefox等)在“Getstyle()”后面的代码中返回不同的值您可以使用以下方法:是否有方法根据浏览器(如IE、chorme、Firefox等)在“Getstyle()”后面的代码中返回不同的值您可以使用以下选项: