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