Ext.Ajax.request({
url : contextPath + "/refreshManager/list",
waitMsg : '数据处理中...',
success : function(resp, options) {
var respText = Ext.util.JSON.decode(resp.responseText);
var map = new Map();
for(var i=0;i<respText.data.length;i++){
if(!map.containsKey(respText.data[i].typeName)){
var arr = new Array();
arr.push(respText.data[i]);
map.put(respText.data[i].typeName,arr);
}else{
map.get(respText.data[i].typeName).push(respText.data[i]);
}
}
map.each(function(key,value,index){
var fieldset = new Ext.form.FieldSet({
title: key.trim()+'管理器配置',
id: 'fieldSet_' + index
});
for(var j = 0;j< value.length;j++){
var panel = new Ext.Panel({
id: 'fieldSet_' + index+'_'+j,
layout: 'column',
border: false,
items : [{
columnWidth : .3,
border : false,
layout : 'form',
items : [{
xtype : 'compositefield',
id : value[j].threadId+'_1',
name : value[j].threadId+'_1',
fieldLabel : '管理器名称',
anchor:'90%',
items: [
{xtype: 'displayfield', value: value[j].threadName}
]
}/*{
xtype : 'textfield',
fieldLabel : '管理器名称',
id : value[j].threadId+'_1',
name : value[j].threadId+'_1',
value : value[j].threadName,
disabled : true,
anchor:'90%'
}*/]
},{
columnWidth : .2,
border : false,
layout : 'form',
items : [{
xtype : 'compositefield',
id : value[j].threadId+'_2',
name : value[j].threadId+'_2',
fieldLabel : '推荐周期('+convent(value[j].cycleUnit)+')',
anchor:'90%',
items: [
{xtype: 'displayfield', value: value[j].defaultCyleTime}
]
}/*{
xtype : 'textfield',
fieldLabel : '推荐周期('+convent(value[j].cycleUnit)+')',
id : value[j].threadId+'_2',
name : value[j].threadId+'_2',
value : value[j].defaultCyleTime,
disabled : true,
anchor:'90%'
}*/]
},{
columnWidth : .4,
border : false,
layout : 'form',
items : [{
xtype : 'numberfield',
fieldLabel : '当前周期('+convent(value[j].cycleUnit)+')',
id : value[j].threadId+'_3',
name : value[j].threadId+'_3',
minValue : value[j].minValue,
maxValue : value[j].maxValue,
value : value[j].cycleTime,
anchor:'60%'
}]
}]
});
fieldset.add(panel);
fieldset.doLayout();
}
refreshManagerPanel.add(fieldset);
refreshManagerPanel.doLayout();
});
},
failure : function(response, options) {
extAlert("error", '系统异常。');
}
});
MAP.JS JS模拟java MAP实现
/**
*
*/
Array.prototype.remove = function(s) {
for (var i = 0; i < this.length; i++) {
if (s == this[i])
this.splice(i, 1);
}
}
/**
* Simple Map
*
*
* var m = new Map(); m.put('key','value'); ... var s = "";
* m.each(function(key,value,index){ s += index+":"+ key+"="+value+"\n"; });
* alert(s);
*
* @author dewitt
* @date 2008-05-24
*/
function Map() {
/** 存放键的数组(遍历用到) */
this.keys = new Array();
/** 存放数据 */
this.data = new Object();
/**
* 放入一个键值对
*
* @param {String}
* key
* @param {Object}
* value
*/
this.put = function(key, value) {
if (this.data[key] == null) {
this.keys.push(key);
}
this.data[key] = value;
};
/**
* 获取某键对应的值
*
* @param {String}
* key
* @return {Object} value
*/
this.get = function(key) {
return this.data[key];
};
/**
* 删除一个键值对
*
* @param {String}
* key
*/
this.remove = function(key) {
this.keys.remove(key);
this.data[key] = null;
};
/**
* 遍历Map,执行处理函数
*
* @param {Function}
* 回调函数 function(key,value,index){..}
*/
this.each = function(fn) {
if (typeof fn != 'function') {
return;
}
var len = this.keys.length;
for (var i = 0; i < len; i++) {
var k = this.keys[i];
fn(k, this.data[k], i);
}
};
/**
* 获取键值数组(类似Java的entrySet())
*
* @return 键值对象{key,value}的数组
*/
this.entrys = function() {
var len = this.keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key : this.keys[i],
value : this.data[i]
};
}
return entrys;
};
/**
* 判断Map是否为空
*/
this.isEmpty = function() {
return this.keys.length == 0;
};
/**
* 判断Map是否包含key
*/
this.containsKey = function(key) {
for (i = 0; i < this.keys.length; i++) {
if (this.keys[i] == key) {
return true;
}
}
return false;
};
/**
* 获取键值对数量
*/
this.size = function() {
return this.keys.length;
};
/**
* 重写toString
*/
this.toString = function() {
var s = "{";
for (var i = 0; i < this.keys.length; i++, s += ',') {
var k = this.keys[i];
s += k + "=" + this.data[k];
}
s += "}";
return s;
};
}