我有一个Extjs表单,我们可以在其中为一个人分配年龄。因此,当我在年龄字段中分配空白并将其保存到数据库时,效果很好(在数据库中,年龄为空白)。但当我尝试刷新并再次显示它时,它显示0。
我尝试使用allowBlank:true,但它不起作用。以下命令也不起作用:https://www.sencha.com/forum/showthread.php?181270-Hi-how-can-i-set-null-for-a-numberfield
表格:
Ext.define('com.view.xxxx.entities.forms.yyyyyyy', {
statics: {
buildItems: function ()
{
return [
{
xtype: 'fieldset',
title: 'Person',
defaultType: 'textfield',
defaults: { anchor: '100%'},
items: [
{fieldLabel: 'Age', name: 'age', xtype: 'numberfield', labelWidth: 130}
]
}
]
}
}
});
如何强制数字字段按原样显示数据库中的数据,即空白字段显示为空白?
3条答案
按热度按时间gev0vcfq1#
我的建议是使用一个将任何非数字值转换为空字符串的模型,并在表单中使用该模型:
请参见此示例
cygmwpex2#
我更喜欢在模型中使用
Number
字段和allowNull
变量。并且
allowBlank
在numberfield
中必须为真。前。
xlpyo6sf3#
我遇到了这个问题,将代码更改为使用allowNull选项似乎可以解决这个问题(对于Ext-js 6).没有详细说明的是,当您将一个字段定义为'null'类型,而没有将convert函数或allowNull选项设置为true时,如果该值实际上为null,则商店将其视为'0',因为'null'不是有效的'number'。我自己花了一段时间才弄明白这一点。
如果运行一个旧版本而allowNull不起作用,你可以通过另外指定一个转换函数来检查null并返回null来解决这个问题。是的,这是一个杂七杂八的东西,但在我尝试使用allowNull之前,它似乎对我很有效。如果你根本不指定allowNull,它也适用于v6,如下所示:
我最初改变了我的应用程序,使用转换功能,并有它的工作,但切换到使用allowNull后,发现这篇文章,因为这是更干净/更清晰,但转换功能选项是一个我发现在一个old Sencha forum post。