success : function(response) {
var array = Ext.util.JSON.decode(response.responseText);
var limitJson=Ext.util.JSON.encode(array.cellLimitJson);
var limitObj = Ext.util.JSON.decode(limitJson.substring(1,
limitJson.length - 1));
var table_items=[];
var limitCount=0;
for(var i=0; i<limitObj.length; i++){
var tableObj=limitObj[i];
var cell_items=[];
var cell_panel=[];
for(var j=0; j<tableObj.items.length; j++){
var playObj=tableObj.items[j];
var playLabel= new Ext.form.Label({html:playObj.playname});
cell_items.push(playLabel);
for(var k=0; k<playObj.items.length; k++){
var cellObj=playObj.items[k];
var cellLabel= new Ext.form.Label({html:' '+cellObj.cellname});
var numberField=new Ext.form.NumberField({
name : 'limitAmountList['+limitCount+'].maxbetamount',
width :50,
value :cellObj.maxBet
});
var id = new Ext.form.TextField({
name : 'limitAmountList['+limitCount+'].id',
value :cellObj.id,
hidden :true
});
cell_items.push(cellLabel,numberField,id);
limitCount++;
}
var panel = new Ext.Panel({
layout :'column',
width :560,
height :25,
items:cell_items
});
cell_panel.push(panel);
}
var fs=new Ext.form.FieldSet({
title :tableObj.tablename,
layout : 'fit',
autoHeight:true,
autoWidth :true,
items :cell_panel
});
table_items.push(fs);
}
limit_form = new Ext.form.FormPanel( {
labelAlign :'left',
labelWidth :100,
frame :true,
defaults : {
msgTarget :'side'
},
bodyStyle :'padding:5px',
width :600,
url :'/gamemanage/member_updateMemberLimitAmount.action',
autoScroll :true,
items :table_items
});
limit_win.add(limit_form);
limit_win.doLayout();
}
怎么实现图中的大中小和单中双 换行呢???
[img]http://dl.iteye.com/upload/attachment/176570/0149b2c1-7662-3417-aefb-9430714bcd34.jpg[/img]
[b]问题补充:[/b]
Map>> tableMap
= new HashMap>> ();
for(CellLimitAmountDTO table : tableList) {
//游戏玩法
List tablePlayList = celllimitDao.findTablePlay(table.getTableid());
Map<CellLimitAmountDTO,List<CellLimitAmountDTO>> playCellMap
= new HashMap<CellLimitAmountDTO, List<CellLimitAmountDTO>>();
for(CellLimitAmountDTO tablePlay : tablePlayList) {
List<CellLimitAmountDTO> playCellList = new ArrayList<CellLimitAmountDTO>();
for(CellLimitAmountDTO cellAmount : cellLimitList){
if(tablePlay.getPlayid().equals(cellAmount.getPlayid())) {
playCellList.add(cellAmount);
}
}
playCellMap.put(tablePlay, playCellList);
}
tableMap.put(table, playCellMap);
}
StringBuilder sb = new StringBuilder();
sb.append("[");
Iterator<CellLimitAmountDTO> tableIterator=tableMap.keySet().iterator();
while(tableIterator.hasNext()){
CellLimitAmountDTO table = tableIterator.next();
sb.append("{tablename:'");
sb.append(table.getTablename());
sb.append("',tableid:'");
sb.append(table.getTableid());
sb.append("',");
Map<CellLimitAmountDTO,List<CellLimitAmountDTO>> playCellsMap = tableMap.get(table);
if(playCellsMap.size()>0){
sb.append("items:[");
Iterator<CellLimitAmountDTO> playIterator = playCellsMap.keySet().iterator();
while(playIterator.hasNext()) {
CellLimitAmountDTO play = playIterator.next();
sb.append("{playid:'");
sb.append(play.getPlayid());
sb.append("',playname:'");
sb.append(play.getPlayname());
sb.append("',");
List<CellLimitAmountDTO> cellList = playCellsMap.get(play);
if(cellList.size()>0) {
sb.append("items:[");
for(CellLimitAmountDTO cell : cellList){
sb.append("{cellid:'");
sb.append(cell.getCellid());
sb.append("',maxBet:'");
sb.append(cell.getMaxbetamount());
sb.append("',cellname:'");
sb.append(cell.getCellname());
sb.append("',id:'");
sb.append(cell.getId());
sb.append("'},");
}
sb.deleteCharAt(sb.length()-1);
sb.append("]");
}
sb.append("},");
}
sb.deleteCharAt(sb.length()-1);
sb.append("]");
}
sb.append("},");
}
sb.deleteCharAt(sb.length()-1);
sb.append("]");
System.out.println(sb.toString());
return sb.toString();
[b]问题补充:[/b]
To yourgname:是不是第一个文本框及文本框前面的汉字作为一行
而单中双及后面的所有文本框作为第二行???
是的,就是要实现这个效果,可以修改TextField的值 然后提交
[b]问题补充:[/b]
[code="java"]
success : function(response) {
var array = Ext.util.JSON.decode(response.responseText);
var limitJson=Ext.util.JSON.encode(array.cellLimitJson);
var limitObj = Ext.util.JSON.decode(limitJson.substring(1,limitJson.length - 1));
var table_items=[];
var limitCount=0;
for(var i=0; i<limitObj.length; i++){
var tableObj=limitObj[i];
var cell_items=[];
var cell_panel=[];
for(var j=0; j<tableObj.items.length; j++){
var playObj=tableObj.items[j];
var playLabel= new Ext.form.Label({html:playObj.playname}); //显示玩法名称Label 如大中小
cell_items.push(playLabel);
for(var k=0; k<playObj.items.length; k++){ //迭代出玩法中是items 如 大
var cellObj=playObj.items[k];
var cellLabel= new Ext.form.Label({html:' '+cellObj.cellname}); //显示 items
var numberField=new Ext.form.NumberField({ //显示items后的 TextField
name : 'limitAmountList['+limitCount+'].maxbetamount',
width :50,
value :cellObj.maxBet
});
var id = new Ext.form.TextField({ //每个items 所对应的id 便于提交修改
name : 'limitAmountList['+limitCount+'].id',
value :cellObj.id,
hidden :true
});
cell_items.push(cellLabel,numberField,id);
limitCount++;
}
var panel = new Ext.Panel({ //显示玩法及下items 的Panel
layout :'column',
width :560,
height :25,
items:cell_items
});
cell_panel.push(panel);
}
var fs=new Ext.form.FieldSet({ //设置FieldSet 如 北京
title :tableObj.tablename,
layout : 'fit',
autoHeight:true,
autoWidth :true,
items :cell_panel
});
table_items.push(fs);
}
limit_form = new Ext.form.FormPanel( { //设置FormPanel
labelAlign :'left',
labelWidth :100,
frame :true,
defaults : {
msgTarget :'side'
},
bodyStyle :'padding:5px',
width :600,
url :'/gamemanage/member_updateMemberLimitAmount.action',
autoScroll :true,
items :table_items
});
limit_win.add(limit_form);
limit_win.doLayout();
}
[/code]
[b]问题补充:[/b]
所以的组件都是根据后台请求到的数据来生成的
[b]问题补充:[/b]
[{tablename:'sdafas',tableid:'02',items:[{playid:'01',playname:'大中小',items:[{cellid:'01',maxBet:'65948.0',cellname:'大',id:'119'}]}]},{tablename:'北京',tableid:'01',items:[{playid:'01',playname:'大中小',items:[{cellid:'01',maxBet:'65948.0',cellname:'大',id:'119'}]},{playid:'02',playname:'单中双',items:[{cellid:'02',maxBet:'5000.0',cellname:'中',id:'118'},{cellid:'03',maxBet:'6515.0',cellname:'双',id:'121'},{cellid:'01',maxBet:'6597.0',cellname:'单',id:'120'}]}]}]
[b]问题补充:[/b]
[code="java"]
Ext.onReady( function() {
Ext.QuickTips.init();
// 测试数据
var sData = "[{tablename:'北京',tableid:'beijing',";
sData += "items:[";
sData += "{playid:'id1',playname:'大中小',items:[{cellid:'11',maxBet:'123',cellname:'大',id:'id2'}]},";
sData += "{playid:'id2',playname:'单中双',items:[{cellid:'22',maxBet:'234',cellname:'单',id:'id3'},";
sData += "{cellid:'33',maxBet:'345',cellname:'中',id:'id4'},";
sData += "{cellid:'44',maxBet:'456',cellname:'双',id:'id5'}";
sData += "]}";
sData += "]";
sData += "}]";
var array = Ext.util.JSON.decode(sData);
//var limitJson=Ext.util.JSON.encode(array.cellLimitJson);
//var limitObj = Ext.util.JSON.decode(limitJson.substring(1, limitJson.length - 1));
var limit_win = [];
var limit_form;
var limitObj = array ;
var table_items = [];
var limitCount = 0;
alert('00');
for ( var i = 0; i < limitObj.length; i++) {
var tableObj = limitObj[i];
var cell_items = [];
var cell_panel = [];
for ( var j = 0; j < tableObj.items.length; j++) {
var playObj = tableObj.items[j];
var playLabel = new Ext.form.Label( {
html :playObj.playname
});//显示玩法名称Label 如大中小
cell_items.push(playLabel);alert('11');
for ( var k = 0; k < playObj.items.length; k++) {//迭代出玩法中是items 如 大
var cellObj = playObj.items[k];
var cellLabel = new Ext.form.Label( {
html :' ' + cellObj.cellname
});//显示 items
alert('22');
var numberField = new Ext.form.NumberField( {//显示items后的 TextField
name :'limitAmountList[' + limitCount + '].maxbetamount',
width :50,
value :cellObj.maxBet
});
var id = new Ext.form.TextField( {//每个items 所对应的id 便于提交修改
name :'limitAmountList[' + limitCount + '].id',
value :cellObj.id,
hidden :true
});alert('33');
//var panel = new Ext.Panel({items:[cellLabel,numberField,id]});
cell_items.push(cellLabel, numberField, id);
limitCount++;
}
var panel = new Ext.Panel( { //显示玩法及下items 的Panel
layout :'column',
width :560,
//height :30,
items :cell_items
});alert('44');
cell_panel.push(panel);
//cell_items = [];
//panel = [];
}
var fs = new Ext.form.FieldSet( { //设置FieldSet 如 北京
title :tableObj.tablename,
layout :'fit',
autoHeight :true,
autoWidth :true,
items : []
// items :cell_panel
});
// 把组件添加到FieldSet里
if (cell_panel != null && cell_panel.length > 0) {
fs.remove(0);// 先把空项删除,如果不删除的话,在IE下看就会占了一段空白
for ( var l = 0; l < cell_panel.length; l++) {
fs.add(cell_panel[l]);
}
}alert('55');
table_items.push(fs);
}
limit_form = new Ext.form.FormPanel( {//设置FormPanel
renderTo :'form-ct',
labelAlign :'left',
labelWidth :100,
frame :true,
defaults : {
msgTarget :'side'
},
//bodyStyle :'padding:5px',
width :600,
//url :'/gamemanage/member_updateMemberLimitAmount.action',
autoScroll :true,
items :table_items
});alert('66');
//limit_win.add(limit_form);
//limit_win.doLayout();
});
[/code]
还是不行啊 第二次弹出 44 时 报错了 还得请哥们帮忙瞧瞧啊
[img]http://dl.iteye.com/upload/attachment/177006/659bf574-3388-31f5-884f-582b2490015e.jpg[/img]