【问题标题】:BLAZOR: Is it possible to change Display Format of <InputNumber>BLAZOR:是否可以更改 <InputNumber> 的显示格式
【发布时间】:2021-10-01 13:06:00
【问题描述】:

是否可以更改&lt;InputNumber&gt;的显示格式,以便我可以使用N2或C2?

我有以下代码(Amount 这里是decimal):

<InputNumber class="form-control" @bind-Value="@Amount" step="0.01" />

我目前正在使用 .NET5

请帮忙????????????

【问题讨论】:

标签: c# .net-core blazor .net-5


【解决方案1】:

我不知道 N2 或 C2 是什么意思,但是 Blazor 输入控件可以具有普通 html input 控件具有的任何属性。查看 HTML5 规范,然后继续添加您想要的任何内容。

我的第一个搜索是“HTML5 格式数字输入”,根本没有参考 Blazor。

同样重要的是检查浏览器兼容性说明,在这种情况下: https://caniuse.com/input-number

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,但今天设法解决了。我拥有的是一个带有不同 HTML 输入的 HTML 表格。它非常有活力。我决定坚持使用常规输入而不是 Inputnumber。我的问题是格式是本地的,使用逗号,然后无法将数字转换为浮点 C# 数据类型。

    我的解决方案是直接在值上应用 LINQ,然后还有一个更新的“OnChange”,因此它最终像绑定值一样工作,但对更新有一些额外的控制。这是我的代码:

    {
    
         <input type="number" pattern="/^-?\d+\?\d*$/" readonly="@isReadOnly" onKeyPress="if(this.value.length==8) return false;" style="background-color:transparent; border:none; padding: 3px; width: 4em" value="@cellvalue.ToString(new System.Globalization.CultureInfo("en-US")).Replace(",",".")"
                                       @onchange="@((ChangeEventArgs __e) => row.SetField<float>(col, float.Parse(__e.Value.ToString().Replace(",","."),new System.Globalization.CultureInfo("en-US"))))" size="8" step=0.01 max="9999" id="number" />
    }
    

    添加的 CultureInfo 是我第一次尝试的解决方案,我认为它实际上没有任何帮助或真正起到任何作用。

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 2020-09-10
      • 2018-10-12
      • 2017-11-12
      • 2013-03-15
      • 1970-01-01
      • 2014-10-19
      • 2012-02-10
      • 1970-01-01
      相关资源
      最近更新 更多