【问题标题】:Thousands separators in Ext.form.NumberFieldExt.form.NumberField 中的数千个分隔符
【发布时间】:2011-09-14 08:12:08
【问题描述】:

我想覆盖 Ext.form.NumberField 的一些配置选项,但我没有找到类似“千位分隔符”的东西。有没有办法为 Ext 中的 NumberFields 定义这个?

还是我必须编写自己的函数来提供此功能?

【问题讨论】:

  • 你想在这里实现什么?设置一个不同的字符作为千位分隔符?
  • 是的,这正是我想要做的
  • 好的,请看下面的答案,我想应该会有所帮助

标签: javascript extjs extjs3


【解决方案1】:

你也可以使用这个覆盖

Ext.override.ThousandSeparatorNumberField

【讨论】:

    【解决方案2】:

    根据论坛/开发人员的仔细检查,NumberField 不支持格式化。网格上的 Numbercolumn 可以。

    他们的建议是使用 TextField 并在显示之前格式化值服务器端,或者在文本字段的“更改”事件上应用一个函数来应用您想要的格式,例如

            <ext:TextField             
                ID="txtField"            
                runat="server"             
                FieldLabel="My Label"            
                AllowBlank="false"             
                ReadOnly="true">             
                <Listeners>                 
                    <Change Handler="this.setValue(Ext.util.Format.number(newValue.replace(/[\,\.]/g, ''), '0.000/i'));" />             
                </Listeners>         
            </ext:TextField>
    

    我假设您需要稍微调整一下以确保您的值按您的意愿显示,但应该有一些适合此处列出的 Ext.util.Format.number 模式的内容:

    http://dev.sencha.com/deploy/ext-3.3.1/docs/output/Ext.util.Format.html#Ext.util.Format-number

    【讨论】:

    • 你说 NumberField 不支持格式化。我想,这是不正确的。有一个名为“decimalSeparator”的配置选项。因此,我预计必须有类似“千分隔符”的选项。但是谢谢你的回答。我会评估你的建议。
    • 属性未格式化,在 NumberColumn 上您可以明确定义格式:例如“0.00”,并且将应用该格式。 NumberField 不支持这一点,这就是为什么您需要将函数应用于文本字段。
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多