EXT显示数据问题

tjzero_sapce 2011-05-05 04:57:31
我从数据库获得了数据 是这种形式
{"code":"datadict2","id":4,"name":"数据字典2","parentId":4}
想要显示在
dataDictTabPanel = Ext.extend(Ext.FormPanel,{
//定义构造器
constructor: function(){
var dataDictId = new Ext.form.TextField({
id: 'dataDictId',
name : 'dataDictId',
fieldLabel: '数据字典ID',
anchor : '90%'
});
var dataDictName = new Ext.form.TextField({
id: 'dataDictName',
name : 'dataDictName',
fieldLabel: '数据字典名称',
anchor : '90%'
});
var dataDictCode = new Ext.form.TextField({
id: 'dataDictCode',
name : 'dataDictCode',
fieldLabel: '数据字典编码',
anchor : '90%'
});
dataDictTabPanel.superclass.constructor.call(this,{
labelAlign: "right",
buttonAlign: "right",
frame: true,
bodyStyle: "padding:0 0",
autoScroll: true,
items: [{
layout: "column",
items: [{
columnWidth: 1,
layout: 'form',
defaultType: 'textfield',
items: [dataDictId, dataDictName, dataDictCode]
}]
}]
});

}
});


原本用的是这种方式
var json = response.responseText;
var json = eval("("+json+")");
Ext.getCmp('dataDictId').setValue(json.id);
Ext.getCmp('dataDictName').setValue(json.name);
Ext.getCmp('dataDictCode').setValue(json.code);


但是涉及到重用的问题 有bug,想要使用
var record = this.lawExpMaintenanceGridPanel.getSelectionModel().getSelected();
this.showWin("edit");
//表单加载数据
this.lawExpMaintenanceFp.form.loadRecord(record);

这种record形式 但是不知道怎么把从转换成 record 的 求大侠们帮帮忙 真的很急
...全文
143 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zn85600301 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tjzero_sapce 的回复:]

引用 2 楼 zn85600301 的回复:
不要用getCmp
用 form.findField('文本框的name')

你这是做修改? 一般是从新请求次数据库
尽量保证数据是最新的 以免覆盖别人的修改

如果你们的业务没这用要求 楼主上的方法应该足够了

我这样写了报错说 对象不支持此属性或方法JScript code
DictInfoPanel = function(……
[/Quote]
findField 是针对form容器的 你可以尝试panel.getForm().findField
tjzero_sapce 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zn85600301 的回复:]
不要用getCmp
用 form.findField('文本框的name')

你这是做修改? 一般是从新请求次数据库
尽量保证数据是最新的 以免覆盖别人的修改

如果你们的业务没这用要求 楼主上的方法应该足够了
[/Quote]
我这样写了报错说 对象不支持此属性或方法
DictInfoPanel = function(node, grid){
//获得右侧tab对象
Ext.Ajax.request({
waitMsg : '读取数据。。。',
url : "/datadict/DataDictServlet?parameter="+node.id,
method : "GET",
callback : function(args, success, response) {
var json = response.responseText;
var json = eval("("+json+")");
//Ext.getCmp('dataDictName').setValue(json.name);
//Ext.getCmp('dataDictCode').setValue(json.code);
if(success){
var panel = Ext.getCmp("dataDictCenterPanel");
panel.findField('dataDictName').setValue(json.name);
panel.findField('dataDictCode').setValue(json.code);
var tab = panel.findById(node.id);
if(!tab){
tab = panel.add({
id: node.id,
xtype:"panel",
title:node.text,
closable:true,
layout:"fit",
items:[grid]
});
}
panel.setActiveTab(tab);
}
},
scope: this
});
}
tjzero_sapce 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caijixu01 的回复:]
Ext.data.Record是一个设定了内部数据类型的对象.可以用其create方法创建Record,如下:

var Ext_record=Ext.data.Record.create({
{name:'name',type:'string'},
{name:'sex',type:'int'}
});
[/Quote]
我这样写的,页面无法显示,放在方法外面和里面页面都无法显示
DictInfoPanel = function(node, grid){
var initRecord = Ext.data.Record.create({
{name:'dataDictName',type:'string'},
{name:'dataDictCode',type:'string'}
});
//获得右侧tab对象
Ext.Ajax.request({

url : "/datadict/DataDictServlet?parameter="+node.id,
method : "GET",
callback : function(args, success, response) {
var json = response.responseText;
var json = eval("("+json+")");

if(success){
var panel = Ext.getCmp("dataDictCenterPanel");
panel.findField('dataDictName');
panel.findField('dataDictCode');

var tab = panel.findById(node.id);
if(!tab){
tab = panel.add({
id: node.id,
xtype:"panel",
title:node.text,
closable:true,
layout:"fit",
items:[grid]
});
}
panel.setActiveTab(tab);
}
},
scope: this
});
}
tjzero_sapce 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zn85600301 的回复:]
dataDictTabPanel这个是你 放文本框的panel吧

你怎么去得到dataDictCenterPanel?
[/Quote]这样好了 您在这个帖子回复下吧 是同样的问题 那个帖子的分页给您
http://topic.csdn.net/u/20110504/16/9e10f3c0-09dd-48cc-97eb-6463d3f4a1fb.html
DictInfoPanel = function(node, grid){
//获得右侧tab对象
Ext.Ajax.request({
waitMsg : '读取数据。。。',
url : "/datadict/DataDictServlet?parameter="+node.id,
method : "GET",
callback : function(args, success, response) {
//var json = JSON.parse(response.responseText);
var json = response.responseText;
var json = eval("("+json+")");
grid.getForm().findField('dataDictName').setValue(json.name);
grid.getForm().findField('dataDictCode').setValue(json.code);
//Ext.getCmp('dataDictName').setValue(json.name);
//Ext.getCmp('dataDictCode').setValue(json.code);
if(success){
var panel = Ext.getCmp("dataDictCenterPanel");
var tab = panel.findById(node.id);
if(!tab){
tab = panel.add({
id: node.id,
xtype:"panel",
title:node.text,
closable:true,
layout:"fit",
items:[grid]
});
}
panel.setActiveTab(tab);
}
},
scope: this
});
}
tjzero_sapce 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zn85600301 的回复:]
dataDictTabPanel这个是你 放文本框的panel吧

你怎么去得到dataDictCenterPanel?
[/Quote]
谢谢这位大哥 我这么改了 终于
zn85600301 2011-05-06
  • 打赏
  • 举报
回复
dataDictTabPanel这个是你 放文本框的panel吧

你怎么去得到dataDictCenterPanel?

tjzero_sapce 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zn85600301 的回复:]
引用 5 楼 tjzero_sapce 的回复:

引用 2 楼 zn85600301 的回复:
不要用getCmp
用 form.findField('文本框的name')

你这是做修改? 一般是从新请求次数据库
尽量保证数据是最新的 以免覆盖别人的修改

如果你们的业务没这用要求 楼主上的方法应该足够了

我这样写了报错说 对象不支持此属性或方法JScript code……
[/Quote]
郁闷 报错信息还是一样的
DictInfoPanel = function(node, grid){
//获得右侧tab对象
Ext.Ajax.request({
waitMsg : '读取数据。。。',
url : "/datadict/DataDictServlet?parameter="+node.id,
method : "GET",
callback : function(args, success, response) {
//var json = JSON.parse(response.responseText);
var json = response.responseText;
var json = eval("("+json+")");
//Ext.getCmp('dataDictName').setValue(json.name);
//Ext.getCmp('dataDictCode').setValue(json.code);
if(success){
var panel = Ext.getCmp("dataDictCenterPanel");
panel.getForm().findField('dataDictName').setValue(json.name);
panel.getForm().findField('dataDictCode').setValue(json.code);
var tab = panel.findById(node.id);
if(!tab){
tab = panel.add({
id: node.id,
xtype:"panel",
title:node.text,
closable:true,
layout:"fit",
items:[grid]
});
}
panel.setActiveTab(tab);
}
},
scope: this
});
}
阿杰心路历程 2011-05-05
  • 打赏
  • 举报
回复
record.set("字段",value);
zn85600301 2011-05-05
  • 打赏
  • 举报
回复
不要用getCmp
用 form.findField('文本框的name')

你这是做修改? 一般是从新请求次数据库
尽量保证数据是最新的 以免覆盖别人的修改

如果你们的业务没这用要求 楼主上的方法应该足够了
菜继续 2011-05-05
  • 打赏
  • 举报
回复
Ext.data.Record是一个设定了内部数据类型的对象.可以用其create方法创建Record,如下:

var Ext_record=Ext.data.Record.create({
{name:'name',type:'string'},
{name:'sex',type:'int'}
});

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧