
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)