Blazorise DataGridNumericColumn的DisplayFormat属性失效求助
解决Blazorise DataGridNumericColumn Decimal(18,4)显示问题
问题根源
Blazorise的DataGridNumericColumn不支持ASP.NET Core的DisplayFormat属性,你之前设置DisplayFormat="n2"无效是因为组件本身不识别这个参数,需要用它自带的Format参数来控制数字格式。
解决方案
1. 使用组件自带的Format参数
将DisplayFormat替换为Format,用自定义格式字符串实现千分位空格、小数保留2-4位的效果:
<DataGridNumericColumn TItem="Job" Field="@nameof(Job.Amount)" Format="# ##0.00##" />
# ##0:整数部分用空格作为千位分隔符,确保至少显示1位整数.00##:小数部分至少显示2位、最多显示4位,适配你需要的1.00或123 456 789.1234格式
2. 手动模板格式化(更灵活)
如果组件的Format参数无法满足复杂需求,可使用DisplayTemplate手动控制显示逻辑:
<DataGridColumn TItem="Job" Field="@nameof(Job.Amount)"> <DisplayTemplate> @string.Format(CultureInfo.InvariantCulture, "# ##0.00##", context.Amount) </DisplayTemplate> </DataGridColumn>
指定CultureInfo.InvariantCulture能确保格式不受系统区域设置影响,稳定输出空格分隔的千分位。
3. 修正默认显示为1,0000的问题
你之前看到的1,0000是组件默认使用当前区域的逗号千分位分隔符,且显示全部4位小数导致的,使用上面的自定义格式即可替换分隔符并控制小数位数。
内容的提问来源于stack exchange,提问作者John Groome
相关产品推荐
相关产品推荐

