Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs4 显示字段值格式不正确_Extjs4 - Fatal编程技术网

Extjs4 显示字段值格式不正确

Extjs4 显示字段值格式不正确,extjs4,Extjs4,我有一个表格布局的表单,每个单元格内都有一个displayfield,初始化表单时没有值。稍后将在loadData函数中添加这些值 我正在向loadData函数传递一个数据数组,并调用form.setValues()。所有的数据项都是简单的字符串,但是其中一些有空格,例如“my data” 我的问题是,当setValue()方法设置displayfieldvalue时,它将空格视为换行符,并将字符串的后续部分放在第一部分下面的行上 单元格足够大,可以容纳字符串的大小,因此不应该有换行符。我想尝试

我有一个表格布局的表单,每个单元格内都有一个
displayfield
,初始化表单时没有值。稍后将在loadData函数中添加这些值

我正在向loadData函数传递一个数据数组,并调用
form.setValues()
。所有的数据项都是简单的字符串,但是其中一些有空格,例如“my data”

我的问题是,当
setValue()
方法设置
displayfield
value
时,它将空格视为换行符,并将字符串的后续部分放在第一部分下面的行上

单元格足够大,可以容纳字符串的大小,因此不应该有换行符。我想尝试设置表行高度,这样
setValue()
方法就不会改变它,但我似乎找不到一种方法。有人知道如何解决这个问题吗

这是我的密码:

initComponent:function(){
this.dockditems=[
{ 
xtype:form,
布局:{
键入:“表”,
栏目:4
},
默认值:{
xtype:'displayfield',
标签宽度:120
},
项目:[
{
字段标签:“我的字段”,
名称:“myField”
},
//…此处添加了更多项目
],
}
];
this.callParent(arguments);//在parent中添加的其他停靠项
},
loadData:函数(记录、父级){
this.callParent(参数);
var formItem=this.dockditems.items[0];
var form=formItem.getForm();
表格.设置值(记录.数据);
},

感谢您提供的任何帮助。

这是每个项目的宽度问题,最初您的值为空,表的字段宽度或多或少等于字段标签。不幸的是,Ext table layout没有设置来计算表单元格宽度以平均划分其面板宽度(或者我找不到)。您可以设置默认的“displayfields”宽度,这将迫使表布局最初呈现更大的单元格。大概是这样的:

Ext.application({
名称:“HelloExt”,
启动:函数(){
Ext.create('Ext.form.Panel'{
renderTo:Ext.getBody(),
布局:{
键入:“表”,
栏目:3
},
默认值:{
xtype:'displayfield',
标签宽度:120,
宽度:240
},
项目:[{
字段标签:“我的字段”,
名称:“myField”
},{
fieldLabel:“主页”,
姓名:'home_score'
},{
fieldLabel:“访问者”,
姓名:'访客评分'
}],
按钮:[{
文本:“更新”,
处理程序:函数(){
this.up('form').getForm().setValues({
myField:“带空格的我的文本字段”,
本垒打得分:“10123.12”,
访客评分:150 123.789
});
this.up('form').forceComponentLayout();
}
}]
});
}
});
注意
这个.up('form').forceComponentLayout()行在按钮处理函数中,它将强制面板在表单数据更改后重新进行布局


你发布了,这样你就可以玩它了。

你真的需要把表单放在dockedItems中吗,你不能把它放在items配置中吗,因为dockedItems通常用于工具栏,所以默认布局是vbox或hbox,这可能会导致这些问题,但我还是决定放弃表格的想法,而是像你建议的那样使用hbox布局和一些面板。干杯。我会检查以确保您确实有空格字符而不是换行符,并且宽度不会导致自动换行。此外,设置行/单元格高度可能无助于不进行换行,但更有可能只是将其截断。