如何在extjs里面拷贝一个extjs object to json

Web(117)
最近在学extjs,发现资料真是少,遇到问题百度半天都出不来,最后还是自己琢磨出来的..
store = Ext.create('Ext.data.Store', {
fields: ['id', 'account', 'name','departmentId','department','phone','createTime','flag'],//department.name是无效的&span style=&font-family: Arial, Helvetica, sans-&&
pageSize: 20,
remoteSort: false,
remoteFilter: true,
type: 'ajax',
url: 'user/query',
type: 'json',
root: 'data',
totalProperty: 'totalCount'
},&pre name=&code& class=&javascript&&&span style=&font-family: Arial, Helvetica, sans-&& sorters: [{&/span& property: 'id',direction: 'desc'}],autoLoad: true});
上面的代码中,fields里的department是一个对象,如果{text: '部门名称', dataIndex: 'department', maxWidth: 120},获得的是[Object object]
解决方式:{text: '部门名称', maxWidth: 120,
renderer:function(value, cellMeta, record){
&span style=&white-space:pre&& &/span&//alert(record.data.department);
&span style=&white-space:pre&& &/span&return record.data.department.
&span style=&white-space:pre&& &/span&}
},部分代码:
renderTo: Ext.getBody(),
store: store,
frame: true,
autoWidth: true,
autoScroll: true,
&span style=&white-space:pre&& &/span&columns: [
&span style=&white-space:pre&&
&/span&{text: '部门名称', maxWidth: 120,
&span style=&white-space:pre&&
&/span&renderer:function(value, cellMeta, record){
//alert(record.data.department);//是[Object object]
return record.data.department.
},],{text: '部门名称', dataIndex: 'department.name', maxWidth: 120},//错误方法
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:70183次
积分:2044
积分:2044
排名:第15554名
原创:136篇
转载:44篇
(3)(3)(2)(2)(1)(2)(2)(2)(8)(1)(2)(1)(2)(3)(2)(8)(19)(40)(27)(13)(22)(13)(4)2909人阅读
前几天做分组,老是遇到问题,后来经过测试,找到了解决方法。
Ext.define('munity.Topic', {
extend: 'Ext.data.Model',
idProperty: 'id',
{name:'id',type:'long'},
{name:'title',type:'string'},
{name:'community.name',type:'string'},
&{name:'community.id',type:'long'},
{name:'community',type:'object'},
{name:'creator',type:'object'},
{name:'participator',type:'object'},
{name:'created',type:'string'},
{name:'modified',type:'string'},
{name:'enabled',type:'boolean'}
* The com.sharera.web.Topic store definition
Ext.define('munity.Topic', {
extend: 'Ext.data.Store',
autoLoad: false,
autoSync: false,
fields: ['id','title','community','creator','participator','created','modified','enabled'],
baseUrl : context+'api/topic',
sorters: {property: 'created', direction: 'DESC'},
groupField: 'community.name',
type: 'rest',
url: context+'api/topic',
model: 'munity.Topic',
reader : {
type : 'json'
writer : {
type : 'json'
listeners : {
exception : function(proxy, response, operation) {
if (operation) {
Ext.Sharera.error(&错误&,operation.error.statusText);
// May be a proxy error...
load:function(store,records,successFull,o){
store.sort([{property : 'community',direction: 'ASC'}]);
setUrlforForm : function(id) {
if(id==undefined || id==null)
this.proxy.url = this.baseU
this.proxy.url = this.baseUrl + &/& + id + &.json&;
setUrlforQuery : function(name) {
if (name == null)
name = 'list';
this.proxy.url = this.baseUrl + &/& + name + &.json&;
setUrlforQuery4Ext : function(name) {
if (name == null)
name = 'listext';
this.proxy.url = this.baseUrl + &/& + name + &.json&;
grid中的代码:
//插件添加
features: [{
& & & & ftype: 'groupingsummary',
& & & & groupHeaderTpl: '&font color=blue&{[values.rows[0].munity.name]}&/font& (共:{rows.length}个话题)',
& & & & hideGroupedHeader: true,
& & & & enableGroupingMenu: false
header:'操作',
align: 'center',
xtype:'actioncolumn',
iconCls : 'icon-checkin-action',
tooltip: '查看',
handler: function(grid, rowIndex, colIndex, item) {
var rec = grid.getStore().getAt(rowIndex);
var formWin= Ext.create(&munity.Topic.FormDisplay&,{bid:rec.data.id});
var formObj=formWin.down('form').getForm();
var panel=formWin.down('panel[ref=discussion]');
var fstore = Ext.create(&munity.Topicform&);
fstore.setUrlforForm(rec.data.id);
fstore.load(
scope: this,
callback: function(records, operation, success) {
formObj.loadRecord(records[0]);
var parValue=new Array();
var participators=records[0].data.
if(records[0].data.enabled){
isUse='是';
if(!records[0].data.enabled){
isUse='否';
for(var i=0;i&participators.i++){
parValue.push(participators[i].user.fullname);
formObj.findField('community').setValue(records[0].munity.name);
formObj.findField('creator').setValue(records[0].data.creator.fullname);
formObj.findField('participator').setValue(parValue.join(','));
formObj.findField('enabled').setValue(isUse);
var topicId=records[0].data.
Ext.Ajax.request({
url:context+'api/discussion/topic/'+topicId+'.json',
method:'get',
success:function(response, opts){
discussions=eval('('+response.responseText+')');
var checkLength=0;
panel.setTitle('讨论管理:(共有'+discussions.length+'条讨论,显示'+discussions.length+'条,已阅'+0+'条)');
var containers=new Array();
for(var i=0;i&discussions.i++){
var id=discussions[i].
var container=Ext.create('Ext.panel.Panel',{
id:discussions[i].id,
cls: 'window-bord',
width:'95%',
border: 0,
padding:'20',
bodyStyle: 'padding-bottom:15background:#',
html: '&p&&&'+discussions[i].content+'&/p&&br&&&' +discussions[i].creator.fullname+'&&'+discussions[i].created
container.add({
xtype:'container',
width:'100%',
padding:'5',
type: 'hbox',
pack: 'end' ,
align: 'stretchmax'
xtype:'button',
text:'禁用',
ref:'forbidden',
check:false,
handler: function(b) {
Ext.MessageBox.confirm('请确认', '您确认要禁用该讨论吗?',function(btn){
if(btn=='yes'){
Ext.Ajax.request({
headers: {&Content-Type&: &application/x-www-form- charset=UTF-8&},
url:context+'api/discussion/check/'+id+'.json',
method:'put',
success:function(response, opts){
var useButton=b.ownerCt.down('button[ref=use]');
useButton.show();
useButton.check=
if(b.check){
useButton.setText('禁用(已阅)');
checkLength++;
panel.setTitle('讨论管理:(共有'+discussions.length+'条讨论,显示'+discussions.length+'条,已阅'+checkLength+'条)');
panel.removeBodyCls()
panel.addBodyCls('background:#196666');
Ext.Sharera.msg(&成功&,'讨论删除成功');
failure:function(response, opts){
Ext.Sharera.error(&错误&,'讨论删除失败');
xtype:'button',
text:'已禁用',
ref:'use',
check:false,
iconCls : 'icon-cancel-action',
handler: function(b) {
Ext.MessageBox.confirm('请确认', '您确认要启用该讨论吗?',function(btn){
if(btn=='yes'){
Ext.Ajax.request({
headers: {&Content-Type&: &application/x-www-form- charset=UTF-8&},
url:context+'api/discussion/check/'+id+'.json?type=setusable',
method:'put',
success:function(response, opts){
var fb=b.ownerCt.down('button[ref=forbidden]');
fb.show();
fb.setText('禁用(已阅)');
Ext.Sharera.msg(&成功&,'讨论启用成功');
failure:function(response, opts){
Ext.Sharera.error(&错误&,'讨论启用失败');
listeners:{
mouseover:function(view){
view.setIconCls('icon-tick');
view.setText('启用');
mouseout:function(view){
if(view.check){
view.setIconCls('icon-cancel-action');
view.setText('已禁用');
listeners:{
render: function(view){
var useButton=view.down('button[ref=use]');
useButton.hide();
containers.push(container);
panel.add(containers);
failure:function(response, opts){
Ext.Sharera.error(&错误&,'话题禁用修改失败'+message);
iconCls : 'icon-cancel-action',
tooltip: '禁用该话题',
handler: function(grid, rowIndex, colIndex, item) {
var id=grid.getStore().getAt(rowIndex).data.
var store=grid.getStore();
Ext.MessageBox.confirm('请确认', '您确认要禁用该话题吗?',function(btn){
if(btn=='yes'){
Ext.Ajax.request({
url:context+'api/topic/check/'+id,
method:'put',
success:function(response, opts){
Ext.Sharera.msg(&成功&,'话题禁用成功');
store.load();
failure:function(response, opts){
Ext.Sharera.error(&错误&,'话题禁用修改失败'+message);
getClass:function(v,o,r,rowIndex,colIndex,store){
if(r.data.enabled){
return 'icon-cancel-action';
return 'x-hidden'
iconCls : 'icon-coins-action',
tooltip: '启用该话题',
handler: function(grid, rowIndex, colIndex, item) {
var id=grid.getStore().getAt(rowIndex).data.
var store=grid.getStore();
Ext.MessageBox.confirm('请确认', '您确认要启用该话题吗?',function(btn){
if(btn=='yes'){
Ext.Ajax.request({
url:context+'api/topic/check/'+id+'?type=enable',
method:'put',
success:function(response, opts){
Ext.Sharera.msg(&成功&,'话题启用成功');
store.load();
failure:function(response, opts){
Ext.Sharera.error(&错误&,'话题启用失败'+message);
getClass:function(v,o,r,rowIndex,colIndex,store){
if(!r.data.enabled){
return 'icon-coins-action';
return 'x-hidden'
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:73056次
积分:1310
积分:1310
排名:千里之外
原创:58篇
评论:13条
(2)(1)(2)(3)(3)(4)(2)(1)(4)(4)(4)(4)(4)(14)(4)(2)Ext中record对象里如何赋值
我用record.set(name,value);时提示name未定义是怎么回事,我在
this.suggestionRecord = Ext.data.Record.create([ {
name : 'sugestseq',
mapping : 'sugestseq',
type : 'string'
name : 'userseq',
mapping : 'userseq',
type : 'string'
name : 'projectseq',
mapping : 'projectseq',
type : 'string'
name : 'deptseq',
mapping : 'deptseq',
type : 'string'
}, 这里定义了好多属性
有一个data 属性。extjs中字符串和对象之间的转换,实现前后台传值
extjs中字符串和对象之间的转换,实现前后台传值
前台:onRBtnClick : function(button, e, eOpts) {
var form = button.up('form');
var sampleNum = form.queryById('sampleNum').getValue();//获取组件属性值
var sampleType = form.queryById('sampleType').getValue();
var sampleDate = form.queryById('sampleDate').getValue();
sampleDate = Ext.Date.format(sampleDate, 'Y-m-d');//日期转换
var info = new Object();//new对象
info .sampleNum = sampleN//把获取的值放入对象中 info.sampleType = sampleTinfo.sampleDate = sampleDstr = Ext.JSON.encode(info);//解析对象form.submit({url : 're/generate',method : 'post',params : {reportAdditionalInfo : str//传字符串到后台},success : function(form, action) {Ext.Msg.alert('信息提示',
action, result.message);win.close();},failure : function(form, action) {Ext.Msg.alert('信息提示', action.result.message);}})},
后台:public void generate(HttpServletRequest request, HttpServletResponse response,String info) {
ObjectMapper objectMapper = new ObjectMapper();//new ObjectMapper
ReportAdditionalInfo reportInfo =
reportAdditionalInfo = StringEscapeUtils.unescapeHtml(reportAdditionalInfo);//不写会报错,解析出错
reportInfo = objectMapper.readValue(reportAdditionalInfo, ReportAdditionalInfo.class);//readValue
catch (IOException e1) {
e1.printStackTrace();
String num = reportInfo.getNum();//获取值
String type = reportInfo.getType();
String date = reportInfo.getDate();}
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊

我要回帖

更多关于 object.assign 深拷贝 的文章

 

随机推荐