radgridview 上的条件格式以删除 '-' - C#
Conditional formatting on a radgridview to remove '-' - C#
我有一个 rad 网格视图,其中包含与库存变动相关的数据。名为的列中的值将全部作为负值提取。我想添加格式,以便从数字中删除负数。
我想条件格式就是我想做的,我不确定满足条件后我想做什么。
ConditionalFormattingObject obj = new ConditionalFormattingObject("MyCondition", ConditionTypes.StartsWith, "-", "", false);
obj.CellBackColor = Color.SkyBlue;
obj.CellForeColor = Color.Red;
obj.TextAlignment = ContentAlignment.MiddleRight;
this.rgv_orderLines.Columns["Moved so Far"].ConditionalFormattingObjectList.Add(obj);
以上代码会在满足条件时将单元格变为蓝色。但是,我不想这样,我希望删除 '-'
。
编辑:以下代码给出了预期的结果,但是,如果没有 try catch,它会在任何不包含值的单元格上崩溃。
private void rgv_orderLines_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.CellElement.ColumnInfo.Name == "Moved so Far")
{
try
{
string value = e.CellElement.Value.ToString();
value = value.Replace("-", "");
e.CellElement.Value = value;
}
catch (Exception ex)
{
}
}
}
ConditionalFormattingObject
仅用于 样式 行,即设置字体和颜色。它没有格式化数据值的功能。
理想情况下,您应该首先将数据存储为正数,因为这样可以更轻松地进行排序、过滤等操作。但是,如果您只想将值显示为正值,则应确保该列是 GridViewDecimalColumn
并将该列的 FormatString
设置为类似
的内容
"#.###;#.###;0"
这意味着显示小数点后三位的值,正数和负数都显示,0表示0。
如果它是一个字符串列,您的代码将起作用,只需在格式化之前检查值是否为空:
private void rgv_orderLines_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.CellElement.ColumnInfo.Name == "Moved so Far")
{
if(e.CellElement.Value != null)
{
string value = e.CellElement.Value.ToString();
value = value.Replace("-", "");
e.CellElement.Value = value;
}
}
}
我有一个 rad 网格视图,其中包含与库存变动相关的数据。名为的列中的值将全部作为负值提取。我想添加格式,以便从数字中删除负数。
我想条件格式就是我想做的,我不确定满足条件后我想做什么。
ConditionalFormattingObject obj = new ConditionalFormattingObject("MyCondition", ConditionTypes.StartsWith, "-", "", false);
obj.CellBackColor = Color.SkyBlue;
obj.CellForeColor = Color.Red;
obj.TextAlignment = ContentAlignment.MiddleRight;
this.rgv_orderLines.Columns["Moved so Far"].ConditionalFormattingObjectList.Add(obj);
以上代码会在满足条件时将单元格变为蓝色。但是,我不想这样,我希望删除 '-'
。
编辑:以下代码给出了预期的结果,但是,如果没有 try catch,它会在任何不包含值的单元格上崩溃。
private void rgv_orderLines_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.CellElement.ColumnInfo.Name == "Moved so Far")
{
try
{
string value = e.CellElement.Value.ToString();
value = value.Replace("-", "");
e.CellElement.Value = value;
}
catch (Exception ex)
{
}
}
}
ConditionalFormattingObject
仅用于 样式 行,即设置字体和颜色。它没有格式化数据值的功能。
理想情况下,您应该首先将数据存储为正数,因为这样可以更轻松地进行排序、过滤等操作。但是,如果您只想将值显示为正值,则应确保该列是 GridViewDecimalColumn
并将该列的 FormatString
设置为类似
"#.###;#.###;0"
这意味着显示小数点后三位的值,正数和负数都显示,0表示0。
如果它是一个字符串列,您的代码将起作用,只需在格式化之前检查值是否为空:
private void rgv_orderLines_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.CellElement.ColumnInfo.Name == "Moved so Far")
{
if(e.CellElement.Value != null)
{
string value = e.CellElement.Value.ToString();
value = value.Replace("-", "");
e.CellElement.Value = value;
}
}
}