extjs怎么获取后台的数据或者是变量。。。求大神速回

extjs怎么获取后台的数据或者是变量。。。求大神速回,第1张

1 使用form表单提交

使用表单提交是调用了表单的submit方法,其配置项包括url、method等。这种方式能够以JSON的形式提交参数信息。

var myform = Extcreate('ExtformPanel',{undefined

defaultType: 'textfield',

items:[{undefined

fieldLabel : 'Name',

name : 'name'

},{undefined

fieldLabel: 'Gender',

name : 'gender'

},{undefined

fieldLabel : 'Age',

name: 'age'

}],

buttons: [{undefined

text : 'load',

handler : function(){undefined

thisup('form')getForm()submit({undefined

url: '/request/userinfo',

method : 'POST',

success : function(form, action){undefined

consolelog(form);

ExtMsgalert('title', 'load success');

});

}]);

2 使用Ajax异步提交

将上述handler方法中的内容换成一下代码即可。在Ajax的request方法中是一个配置对象,其配置参数包括url,type,params。其中params表示要提交的参数,在此例中是从form表单中通过getValues()方法获得的。该种方式也能将参数一JSON的方式提交到后台,与一个对象匹配。

var values = thisup('form')getForm()getValues();

ExtAjaxrequest({undefined

url:'/request/userinfo',

headers : {undefined'userHeader': 'userMsg'},

type:'POST',

params:values,

success:function(response){undefined

var data = responseresponseText;

consolelog(data);

consolelog("success");

},

});

3 使用ExtdataStore

在项目中经常需要通过提交一些数据来从后台获取相应的信息。例如,在表单中输入某个人的id和name就可以查出它的相关信息并在前台显示。一个关于extjs的例子如下:

//data Model

Extdefine('User',{undefined

extend: 'ExtdataModel',

fields: [{name:'name',type:'string'},

{name:'gender',type:'string'},

{name:'age',type:'string'}

]

});

var userStore = Extcreate('ExtdataStore',{undefined

model: 'User',

pageSize: 20,

// autoLoad : true,

proxy: {undefined

type : 'ajax', //提交数据的方式

url : '/request/userinfo',

reader : { //以json的形式读取将要提交的数据

type : 'json',

root : 'resultList'

},

writer : {undefined

type : 'json'

},

actionMethods : {undefined

create : 'POST'

}

},

});

//grid Panel

Extcreate('ExtgridPanel',{undefined

store: userStore,

columns: [

{header : 'Name', dataIndex : 'name'},

{header : 'Gender', dataIndex : 'gender'},

{header : 'Age', dataIndex : 'age'}

],

height: 200,

width: 400,

renderTo: 'div2'

});

//form Panel

var myform = Extcreate('ExtformPanel',{undefined

defaultType: 'textfield',

items:[{undefined

fieldLabel: 'Name',

name: 'name'

},{undefined

fieldLabel: 'Gender',

name: 'gender'

},{undefined

fieldLabel : 'Age',

name : 'age'

}],

buttons: [{undefined

text: 'load',

handler: function(){undefined

var values = thisup('form')getForm()getValues();

consolelog(values);

userStoreproxyextraParams=values;

userStoreloadPage(1);

}

}

});

在handler方法中获取form表单的参数后,赋值给userStoreproxyextraParams,然后调用userStoreloadPage(1)。调用loadPage()方法时,会委托给proxy对象去后台获取数据。所以对proxy的配置是核心。使用这个方式从后台获取数据时,后台接口返回的对象应该包括一个List字段,list中包含所需要的具体信息。比如

@ReponseBody

public UserInfoResp getUserInfo(User user) {undefined

}

UserInfoResp应该像这样有一个List字段

class UserInfoResp {undefined

List<User> resulltList;

}

代码如下:

// ArrayStore

var keyNameStore = new ExtdataArrayStore({

fields: ['text', 'value'],

data : [

['商品编号','Meta_productsNo'],

['商品名称','Meta_productName']

]

});

// 通过value值获取keyNameStore里面的text

function getFilterFieldLable(value){

var rt = "";

var rowIndex = keyNameStoregetCount();

for(var i=0;i<rowIndex;i++){

var record = keyNameStoregetAt(i);

var fields = ExtutilJSONencode(recorddata);

var fieldObj = ExtutilJSONdecode(fields);

if(value==fieldObjvalue){

rt = fieldObjtext;

break;

}

}

return rt;

}

大致思路:

var _grid = ExtgetCmp('grid1');

var record = _gridselModelgetSelected(); // 获取当前行

recorddatacode = 'xxx'; // 这里给code和name两列赋上指定值

recorddataname = 'xxx';

recordcommit(); //提交

_gridgetView()refresh(); //刷新表格

11:数据对应的列,加了一个点击事件,获取到该列的值,然后赋值

{

align: 'center',

text: 'A,

dataIndex: 'A',

width:60,

renderer : function(val, meta, record) {

val = "<a href='javascript:;' >"+val+"</a>";

metatdAttr = 'data-qtip="' + val + '"';

return '<div align="left">' + val + '</div>';

},

listeners:{

'click':function(){

var rows = gridgetSelectionModel()getSelection();

displayfieldsetValue(rows[0]get('A'));//通过rows[0]get('字段名')来获取A字段的值,然后赋值给displayfield

}

}

2如果有点击事件的话,你可以直接使用 var rows = gridgetSelectionModel()getSelection();获取store的数据模型(存放了所有的记录),rows[0]是指定行的记录(包括隐藏的字段),displayfield这个在grid外面创建好的,在grid可以引用到的话可以直接使用 displayfieldsetValue(rows[0]get('A'));来赋值

3

var display = Extcreate('ExtformfieldDisplay',{

xtype: 'displayfield',

fieldLabel: 'Visitor',

name: 'visitor_score',

value: '11'

})

var grid = Extcreate('ExtgridPanel', {

store: store,

columns: [

{text : 'Company',

flex : 1,dataIndex: 'company',

renderer : function(val, meta, record) {

val = "<a href='javascript:;' >"+val+"</a>";

return val;

},

listeners:{

'click':function(){

var rows = gridgetSelectionModel()getSelection();

displaysetValue(rows[0]get('name'))

}

}

} ], dockedItems: [{

xtype: 'toolbar',

dock: 'top',

items: [display]

}]

});

});

storeon('load', function(store, records, options) {

if (recordslength > 0) {

var record = records[0];

var id= recordget('id=');

if(id==''){

}

}

});

store加载后如果有值获取第一条的数据,再根据值判断按钮状态

以上就是关于extjs怎么获取后台的数据或者是变量。。。求大神速回全部的内容,包括:extjs怎么获取后台的数据或者是变量。。。求大神速回、extjs 获取store部分值、ExtJS 如何在页面获取当前行某一列的值,并将该列值从0改为1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9586186.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存