在网上找了很多方法,仿照写了全部都没用,Grid照样显示不了数据难道是因为我使用 EXT3.0的问题?在后台能显示出返回的JSONObject,但是调试的时候store2的长度则为0,为什么?还有IE脚本错误,提示“对象不支持此属性或方法”
js 代码:
var GameRecord = Ext.data.Record.create([
{name: 'userCode', mapping: 'userCode'},
{name: 'userName', mapping: 'userCode'},
{name: 'loginDate', mapping: 'loginDate'},
{name: 'loginIp', mapping: 'loginIp'}
]);
var store2 = new Ext.data.JsonStore({
proxy:new Ext.data.HttpProxy({
url: 'right/User!searchUser2.action',
method:'POST'
}),
reader:new Ext.data.JsonReader({
totalProperty : 'total1',
root:'userList'
},GameRecord),
remoteSort: true
//reader:jsonReader2
});
store2.load(); var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update'
}); var grid = new Ext.grid.GridPanel({
store: store2,
width: 600,
region:'center',
margins: '0 5 5 5',
autoExpandColumn: 'userCode',
plugins: [editor],
view: new Ext.grid.GroupingView({
Dirty: false
}),
tbar: [{
iconCls: 'icon-user-add',
text: 'Add Employee',
handler: function(){
var e = new Employee({
name: 'New Guy',
email: '[email protected]',
start: (new Date()).clearTime(),
salary: 50000,
active: true
});
editor.stopEditing();
store.insert(0, e);
grid.getView().refresh();
grid.getSelectionModel().selectRow(0);
editor.startEditing(0);
}
},{
ref: '../removeBtn',
iconCls: 'icon-user-delete',
text: 'Remove Employee',
disabled: true,
handler: function(){
editor.stopEditing();
var s = grid.getSelectionModel().getSelections();
for(var i = 0, r; r = s[i]; i++){
store.remove(r);
}
}
}], columns: [
new Ext.grid.RowNumberer(),
{
id: 'userCode',
header: 'userCode',
dataIndex: 'userCode',
width: 220,
sortable: true,
editor: {
xtype: 'textfield',
allowBlank: false
}
},{
header: 'userName',
dataIndex: 'userName',
width: 150,
sortable: true,
editor: {
xtype: 'textfield',
allowBlank: false
}
},{
xtype: 'datecolumn',
header: 'Start Date',
dataIndex: 'loginDate',
format: 'm/d/Y',
width: 100,
sortable: true,
//groupRenderer: Ext.util.Format.dateRenderer('M y'),
editor: {
xtype: 'datefield',
allowBlank: false
}
},{
header: 'loginIp',
dataIndex: 'loginIp',
width: 100,
sortable: true,
editor: {
xtype: 'textfield',
allowBlank: false
}
}]
});
Action 代码:
public void searchUser2(){
DetachedCriteria dcq = DetachedCriteria.forClass(ScmUser.class,"alias");
dcq.add(Expression.ne("userType", "super"));
dcq.add(Expression.ne("userType", "supplier"));
userList = rightService.findByDetachedCriteria(dcq);
int totalNum = userList.size();
JSONArray jArray = new JSONArray();
try{
for(ScmUser user : userList){
JSONObject jObject = new JSONObject();
jObject.put("userCode", user.getUserCode());
jObject.put("userName", user.getUserName());
jObject.put("loginIp", user.getLoginIp());
jObject.put("loginDate", user.getLoginDate());
jArray.put(jObject);
}
}catch (Exception e){
e.printStackTrace();
}
try{
JSONObject json = new JSONObject();
json.put("total1", totalNum);
json.put("userList", jArray); response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().print(json.toString());
response.getWriter().flush();
response.getWriter().close();
logger.info(json);
}catch(Exception e){
e.printStackTrace();
}
//super.ajaxResult(jArray.toString());
}
在后代能显示返回的JSONObject:{"total1":11,"userList":[{"loginIp":"127.0.0.1","userCode":"LS0823","userName":"小陈1","loginDate":"2010-12-15 14:02:46.53"},{"loginIp":"127.0.0.1","userCode":"LS0002","userName":"小屯","loginDate":"2010-12-15 17:06:08.42"},{"loginIp":"127.0.0.1","userCode":"LS0101","userName":"小牧","loginDate":"2010-12-23 09:01:46.03"},{"loginIp":"127.0.0.1","userCode":"测试01","userName":"234","loginDate":"2010-12-22 10:26:07.877"},{"loginIp":"127.0.0.1","userCode":"测试03","userName":"234324","loginDate":"2010-12-15 17:12:17.233"},{"userCode":"6366","userName":"3"},{"loginIp":"127.0.0.1","userCode":"Kingston","userName":"金士顿","loginDate":"2010-12-20 14:30:27.093"},{"userCode":"KingMax","userName":"胜创"},{"loginIp":"127.0.0.1","userCode":"ADATA","userName":"威刚","loginDate":"2010-12-20 16:58:06.78"},{"userCode":"StarRam","userName":"星存"},{"userCode":"测试04","userName":"小李"}]}
试试看