这个例子比较经典,常用的一些操作基本都包括在内了。
<script type="text/javascript">
var win=null;
function showPanel(){
win.show();
};
(function(){
Ext.onReady(function(){
Ext.Ajax.timeout = 900000;
var devRecord = Ext.data.Record.create([
{name: 'usercode',mapping:'usercode'},
{name: 'username',mapping:'username'}
]);
var codeRecord = Ext.data.Record.create([
{name: 'codevalue',mapping:'codevalue'},
{name: 'codename',mapping:'codename'}
]);
var envRecord = Ext.data.Record.create([
{name: 'envcode',mapping:'envcode'},
{name: 'envname',mapping:'envname'}
]);
var spclStore = new Ext.data.Store({
//设定读取的地址
autoLoad :true,
proxy: new Ext.data.HttpProxy({url: 'getComboxValues.action?type=spclconf'}),
//设定读取的格式
reader: new Ext.data.JsonReader({
id:"codevalue",totalProperty:'results',root:'items',successProperty :'success'
}, codeRecord),
remoteSort: true,
listeners: {
load: function() {
var spclConfCombo = Ext.getCmp('spclConfCombo');
spclConfCombo.setValue(spclConfCombo.getValue());
}
}
});
//-----------
var spclStore2 = new Ext.data.Store({
//设定读取的地址
autoLoad :true,
proxy: new Ext.data.HttpProxy({url: 'getTake.action?type=takelink'}),
//设定读取的格式
reader: new Ext.data.JsonReader({
id:"codevalue",totalProperty:'results',root:'items',successProperty :'success'
}, codeRecord),
remoteSort: true,
listeners: {
load: function() {
//var spclConfCombo = Ext.getCmp('spclConfCombo');
//spclConfCombo.setValue(spclConfCombo.getValue());
}
}
});
var envStore = new Ext.data.Store({
//设定读取的地址
//autoLoad :true,
proxy: new Ext.data.HttpProxy({url: 'getComboxValues.action?flag=prdenv'}),
//设定读取的格式
reader: new Ext.data.JsonReader({
id:"envcode",totalProperty:'results',root:'items',successProperty :'success'
}, envRecord),
remoteSort: true
});
var devStore=new Ext.data.Store({
//设定读取的地址
proxy: new Ext.data.HttpProxy({url: 'getUserList.action?flag=all&role=dev'}),
//设定读取的格式
reader: new Ext.data.JsonReader({
id:"usercode",totalProperty:'results',root:'items',successProperty :'success'
}, devRecord),
remoteSort: true,
listeners: {
load: function() {
devCombo.setValue(devCombo.getValue());
}
}
});
var devCombo = new Ext.form.ComboBox({
selectOnFocus:true,
valueField:'usercode',
hiddenName:'devCombo',
displayField:'username',
editable:false,
forceSelection:true,
triggerAction:'all',
allowBlank:true,
store:devStore,
typeAhead: true,
width:90
});
var streamRecord = Ext.data.Record.create([
{name: 'brhcode',mapping:'brhcode'},
{name: 'brhname',mapping:'brhname'}
]);
var streamStore=new Ext.data.Store({
//设定读取的地址
proxy: new Ext.data.HttpProxy({url: 'getStreamList.action?flag=all&brhtype=dev'}),
//设定读取的格式
reader: new Ext.data.JsonReader({
id:"brhcode",totalProperty:'results',root:'items',successProperty :'success'
}, streamRecord),
remoteSort: true,
listeners: {
load: function() {
streamCombo.setValue(streamCombo.getValue());
}
}
});
var streamCombo = new Ext.form.ComboBox({
selectOnFocus:true,
valueField:'brhcode',
hiddenName:'streamCombo',
displayField:'brhname',
editable:false,
//disabled:true,
triggerAction:'all',
allowBlank:true,
store:streamStore,
typeAhead: true,
//mode:'local',
width:200
});
var envCombo = new Ext.form.ComboBox({
selectOnFocus:true,
valueField:'envcode',
hiddenName:'envCombo',
displayField:'envname',
editable:false,
triggerAction:'all',
allowBlank:true,
store:envStore,
typeAhead: true,
width:120,
listWidth:120,
listeners:{
}
});
//expand
//创建工具栏组件
var toolbar = new Ext.Toolbar([
'-',
'生境:',envCombo,'-',
'开发流:',streamCombo,'-',
'员:',devCombo,'-',
'活动号:',
new Ext.form.TextField({
id: 'actquery'
})
]);
var toolbar2 = new Ext.Toolbar([
'-',
{text : '发,iconCls:'complete',handler:deployToPrdAfter},
'-'
]);
var toolbar3 = new Ext.Toolbar([
'-',' ',
{text : '查,iconCls:'query',handler:queryToDeploy},
' ','-'
]);
var toolbar4 = new Ext.Toolbar([
'-',' ',
{text : '申布',iconCls:'query',handler:deployToPrdBefore},
' ','-'
]);
//定义数据集对象
var actStore = new Ext.data.GroupingStore({
autoLoad :false,
groupField:'envname',
sortInfo:{field: 'makedate', direction: "ASC"},
reader: new Ext.data.JsonReader({
id:"taskid",totalProperty:'results',root:'items',successProperty :'success'
},
Ext.data.Record.create([
{name: 'actid',mapping:'actid'},
{name: 'proposername',mapping:'proposername'},
{name: 'handdeploy',mapping:'handdeploy'},
{name: 'testorder',mapping:'testorder'}
])
),
proxy : new Ext.data.HttpProxy({
url : 'QueryDeployPrdBefore.action'
}),
listeners : {
'load' : function() {
actGrid. getSelectionModel(). selectAll();
}
}
})
//add by zj start
var actStore2 = new Ext.data.GroupingStore({//actStore2.insert(0,records);
autoLoad :false,
groupField:'envname',
sortInfo:{field: 'makedate', direction: "ASC"},
reader: new Ext.data.JsonReader({
id:"taskid",totalProperty:'results',root:'items',successProperty :'success'
},
Ext.data.Record.create([
{name: 'actid',mapping:'actid'},
{name: 'brhcode',mapping:'brhcode'},
{name: 'brhname',mapping:'brhname'},
{name: 'upactno',mapping:'upactno'},
{name: 'islink',mapping:'islink'},
{name: 'linkoperate',mapping:'linkoperate'}
])
),
proxy : new Ext.data.HttpProxy({
//url : 'QueryDeployPrdAfter.action'
}),
listeners : {
'load' : function() {
actGrid. getSelectionModel(). selectAll();
}
}
})
//弹出框数据集
var actStore3 = new Ext.data.GroupingStore({
autoLoad :false,
groupField:'envname',
sortInfo:{field: 'makedate', direction: "ASC"},
reader: new Ext.data.JsonReader({
id:"taskid",totalProperty:'results',root:'items',successProperty :'success'
},
Ext.data.Record.create([
{name: 'actno',mapping:'actno'},
{name: 'content',mapping:'content'}
])
),
proxy : new Ext.data.HttpProxy({
//url : 'QueryDeployPrdBefore.action'
}),
listeners : {
'load' : function() {
actGrid3. getSelectionModel(). selectAll();
}
}
})
//add by zj end
//创建Grid表格组件
var cb = new Ext.grid.CheckboxSelectionModel()
var actGrid = new Ext.grid.EditorGridPanel({
applyTo : 'grid-div2',
//renderTo: 'grid-div',
id:'actGrid',
frame:true,
tbar : toolbar,
bbar : toolbar4,
store: actStore,
clicksToEdit:1,
height: 480,
width:1200,
stripeRows : true,
autoScroll : true,
hideGroupedColumn:true,
viewConfig : {
autoFill : true
},
sm : cb,
columns: [//配置表格列
new Ext.grid.RowNumberer({
header : '行号',
width : 40
}),//表格行号组件
cb,
{header: "测", width: 60, dataIndex: 'testname', sortable: true},
{header: "紧", width: 60, dataIndex: 'urgeflagname', sortable: true,renderer : function(value, cellmeta, record) {
return (value=="是")?('<span style="color:red;">'+value+'</span>'):value;
}},
{header: "描", width: 80, dataIndex: 'content', sortable: true,
<%--editor:new Ext.form.TextField({
allowBlank : false
}),--%>
renderer:showDetail},
{header: "备", width: 80, dataIndex: 'remark', sortable: true,editor:new Ext.form.TextField({
allowBlank : true
}),renderer:showDetail},
{header: "特", width: 70, dataIndex: 'spclconf', sortable: true
,editor: new Ext.form.ComboBox({
id:'spclConfCombo',
selectOnFocus:true,
valueField:'codevalue',
hiddenName:'spclCombo',
displayField:'codename',
editable:false,
forceSelection:false,
triggerAction:'all',
store:spclStore,
typeAhead: true,
width:80,
listWidth:100
})
,renderer : function(value, cellmeta, record) {
var index = spclStore.find(Ext.getCmp('spclConfCombo').valueField, value);
var recordspcl = spclStore.getAt(index);
var displayText = "";
if (recordspcl == null) {
displayText = value;
}else {
displayText = recordspcl.data.codename;
}
if(displayText != null && displayText !=""){
displayText = '<span style="color:red;">' + displayText + '</span>';
}
return displayText;
}
},
{header: "活", width: 180, dataIndex: 'actid', sortable: true,renderer:showDetail}
],
view: new Ext.grid.GroupingView({
//forceFit:true,
hideGroupedColumn : true,
groupByText:'使用当前字段进行分组',
showGroupsText:'表格分组',
groupTextTpl: '{text} ({[values.rs.length]} {["个活动待更新"]})'
})
,listeners: {
'render': function () {
toolbar3.render(this.tbar); //add one tbar
}
}
})
//add by zj start
var cb2 = new Ext.grid.CheckboxSelectionModel()
var actGrid2= new Ext.grid.EditorGridPanel({
applyTo : 'grid-div2',
//renderTo: 'grid-div2',
id:'actGrid2',
frame:true,
tbar : toolbar,
bbar : toolbar2,
store: actStore2,
clicksToEdit:1,
height: 480,
width:1200,
stripeRows : true,
autoScroll : true,
hideGroupedColumn:true,
viewConfig : {
autoFill : true
},
sm : cb2,
columns: [//配置表格列
new Ext.grid.RowNumberer({
header : '行号',
width : 40
}),//表格行号组件
cb2,
{header: "布", width: 60, dataIndex: 'urgeflagname', sortable: true,renderer : function(value, cellmeta, record) {
return (value=="是")?('<span style="color:red;">'+value+'</span>'):value;
}},
{header: "描ds", width: 80, dataIndex: 'content', sortable: true,
<%--editor:new Ext.form.TextField({
allowBlank : false
}),--%>
renderer:showDetail},
{header: "备d", width: 80, dataIndex: 'remark', sortable: true,editor:new Ext.form.TextField({
allowBlank : true
}),renderer:showDetail},
{header: "sdfsdf", width: 70, dataIndex: 'spclconf', sortable: true
,editor: new Ext.form.ComboBox({
id:'spclConfCombo',
selectOnFocus:true,
valueField:'codevalue',
hiddenName:'spclCombo',
displayField:'codename',
editable:false,
forceSelection:false,
triggerAction:'all',
store:spclStore,
typeAhead: true,
width:80,
listWidth:100
})
,renderer : function(value, cellmeta, record) {
var index = spclStore.find(Ext.getCmp('spclConfCombo').valueField, value);
var recordspcl = spclStore.getAt(index);
var displayText = "";
if (recordspcl == null) {
displayText = value;
}else {
displayText = recordspcl.data.codename;
}
if(displayText != null && displayText !=""){
displayText = '<span style="color:red;" >' + displayText + '</span>';
}
return displayText;
}
},
{header: "aaa", width: 60, dataIndex: 'actid', sortable: true,renderer:showDetail},
{header: "aa是否有关联", width: 70, dataIndex: 'islink',
renderer : function(value, cellmeta, record, rowIndex, columnIndex, store){
var actid=record.get('actid');
var envcode=record.get('envcode');
getInfo(actid,envcode);
if(value=='0'){
return '无';
}else{
return '<a href="#" onclick="showPanel();">有</a>';
}
}
},
{header: "关联ddd操作", width: 70, dataIndex: 'linkoperate', sortable: true
,editor:new Ext.form.ComboBox({
id:'spclConfCombo2',
selectOnFocus:true,
valueField:'codevalue',//
hiddenName:'spclCombo',
displayField:'codename',
editable:false,
forceSelection:false,
triggerAction:'all',
store:spclStore2,
typeAhead: true,
width:80,
listWidth:100
})
}
],
view: new Ext.grid.GroupingView({
//forceFit:true,
hideGroupedColumn : true,
groupByText:'使用当前字段进行分组',
showGroupsText:'表格分组',
groupTextTpl: '{text} ({[values.rs.length]} {["个活动待更新"]})'
})
,listeners: {
'render': function () {
toolbar3.render(this.tbar); //add one tbar
}
}
})
//add by zj end
//创建新增或修改书籍信息的form表单
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';//统一指定错误信息提示方式
function showDetail(value, meta, rec, rowIdx, colIdx, ds){
return '<div ext:qtitle="" ext:qtip="' + value + '">'+ value +'</div>';
}
//查询数据库字段方法
function queryToDeploy(){
var devPerson = devCombo.getValue();
var devStream = streamCombo.getValue();
var envQuery = envCombo.getValue();
var actQuery = Ext.get('actquery').dom.value;
var msgTip = Ext.MessageBox.show({
title:'提示',
width : 250,
msg:'正在查询活动信息......',
progress:true,
wait:true,
waitConfig:{
interval:1000
}
});
actStore.load({params:{UserCode:devPerson, BrhCode:devStream,
envCode:envQuery,actQuery:actQuery},
callback:function afterQuery(response,options, success){
msgTip.hide();
if(!success)
{
Ext.MessageBox.alert("提示","没有待发布的活动!");
actStore.removeAll();
}
}
});
}
//申请发布的函数
function deployToPrdBefore(){
var acts = actGrid.getSelectionModel().getSelections();
//actStore.load();
if(acts.length == 0){
Ext.MessageBox.alert("提示","请选择待提交的活动!");
return;
}
var changed = actStore.modified;
var missed = false;
Ext.each(changed, function(record) {
var flag = true;
Ext.each(acts, function(item) {
if(record.data.actid == item.data.actid){
flag = false;
}
});
if(flag){
missed = true;
}
});
if(missed){
Ext.MessageBox.confirm('提示',
'有些记录您做了修改,但没有选择提交,是否继续?',
function(id){
if(id == 'yes'){
deployActsBefore();
}
});
}else{
deployActsBefore();
}
}
//add by zj start
function deployToPrdAfter(){
var acts = actGrid2.getSelectionModel().getSelections();
if(acts.length == 0){
Ext.MessageBox.alert("提示","请选择待提交的活动!");
return;
}
//验证是否选择下拉框
var fl=null;
Ext.each(acts, function(record) {
if(record.data.linkoperate==null){
Ext.MessageBox.alert("提示","请选择下拉框关联操作!");
//测试
fl=true;
return;
}
});
if(fl){
return;
}
var changed = actStore.modified;
var missed = false;
Ext.each(changed, function(record) {
var flag = true;
Ext.each(acts, function(item) {
if(record.data.actid == item.data.actid){
flag = false;
}
});
if(flag){
missed = true;
}
});
if(missed){
Ext.MessageBox.confirm('提示',
'有些记录您做了修改,但没有选择提交,是否继续?',
function(id){
if(id == 'yes'){
deployActsAfter();
}
});
}else{
deployActsAfter();
}
}
//add by zj end
var msgTip=null;
var deployReturn=false;
function hideDeployProgress(){
deployReturn=true;
msgTip.hide();
}
//################################################################################
function getInfo(actid, envcode){
Ext.Ajax.request({
url : 'queryActivityOther.action',//+'?actid='+actid+'&envcode='+envcode,
params : {'actid':actid,'envcode':envcode},
method : 'POST',
success : function(response,options){
var result = Ext.util.JSON.decode(response.responseText);//json->object
var Record = actStore3.recordType;
for(var i=0;i<result.items.length;i++){
if(result.items[i]!=null){
var r = new Record(result.items[i]);//转成Record
actStore3.insert(0,r);
};
};
}
});
};
function showDeployProgress(jsonData,first,url){
if(first){
msgTip = Ext.MessageBox.show({
title:'提示',
width : 250,
msg:'正在发布......',
progress:true,
wait:true,
waitConfig:{
interval:1000
}
});
deployReturn=false;
setTimeout(function(){showDeployProgress(jsonData)},1000)
return ;
}
Ext.Ajax.request({
url : url,
params : {jsonData:jsonData},
method : 'POST',
success : function(response,options){
var result = Ext.util.JSON.decode(response.responseText);
if(deployReturn){
}else if(result.busy){
Ext.MessageBox.updateText(result.msg);
setTimeout(function(){showDeployProgress(jsonData)},1000)
}else{
setTimeout(function(){showDeployProgress(jsonData)},1000);
}
}
});
}
function deployActsBefore(){
var acts = actGrid.getSelectionModel().getSelections();
var jsonData = "[";
/*Ext.each(acts, function(record) {
jsonData +=Ext.encode(record.data)+",";
//record.data.indexNo = this.indexOf(record);
});
jsonData=Ext.util.Format.substr(jsonData,0, jsonData.length-1);
*/
var appendRecordStrFn = function(record) {
record.data.indexNo = this.indexOf(record);
jsonData += Ext.encode(record.data) + ",";
};
Ext.each(acts , appendRecordStrFn, actStore);
jsonData += "]";
Ext.Ajax.request({
url : 'QueryActivityViewToApplyRel.action',
params : {jsonData:jsonData},
timeout: 300000,
method : 'POST',
success : function(response,options){
hideDeployProgress();
var result = Ext.util.JSON.decode(response.responseText);
alert(result);
Ext.Msg.alert('提示',result.msg);
for(var i = 0 ; i < acts.length ; i++){
actStore.remove(acts[i]);
}
var Record = actStore2.recordType;
for(var i=0;i<result.items.length;i++){
var r = new Record(result.items[i]); //转成Record
actStore2.insert(0,r);
};
actStore.modified = [];
//actStore2.load();
},
failure : function(response,options){
hideDeployProgress();
Ext.Msg.alert('提示','发布失败或超时,请联系管理员!');
}
});
//actStore.load();
showDeployProgress(jsonData,true,"QueryActivityViewToApplyRel.action");
}
//add by zj start
function deployActsAfter(){
var acts = actGrid2.getSelectionModel().getSelections();
var jsonData = "[";
var appendRecordStrFn = function(record) {
record.data.indexNo = this.indexOf(record);
jsonData += Ext.encode(record.data) + ",";
};
Ext.each(acts , appendRecordStrFn, actStore);
jsonData += "]";
Ext.Ajax.request({
url : 'deployActs2.action',
params : {jsonData:jsonData},
timeout: 300000,
method : 'POST',
success : function(response,options){
hideDeployProgress();
var result = Ext.util.JSON.decode(response.responseText);
Ext.Msg.alert('提示',result.msg);
for(var i = 0 ; i < acts.length ; i++){
actStore2.remove(acts[i]);
}
actStore2.modified = [];
},
failure : function(response,options){
hideDeployProgress();
Ext.Msg.alert('提示','发布失败或超时,请联系管理员!');
}
});
showDeployProgress(jsonData,true,"deployActs2.action");
}
//add by zj end
var mainpanel=new Ext.grid.GridPanel({
//renderTo : 'grid-div2',
region:"north",
resizable:false,
id:'mainpanel',
autoWidth:true,
frame:true,
store: actStore3,
height: 400,//Ext.get("grid-div2").getHeight()-10,
width: Ext.get("grid-div2").getWidth(),
columns: [//配置表格列
new Ext.grid.RowNumberer({
header : '行号',
width : 40
}),
{header: "有的补", width: 60, sortable: true, dataIndex:'relateact'},
{header: "关丁开发人", width: 60, sortable: true, dataIndex:'username'},
{header: "补", width: 60, sortable: true, dataIndex:'content'}
]
});
var bottom= new Ext.Panel({
id: 'bottomLogo',
height: 10,
region:"center",
//frame:true,
buttonAlign: 'center',
buttons: [
{ text: '关闭',
handler : hiddenwindow
}
]
});
var panel2=new Ext.Panel({
resizable:false,
layout:"border",
id:'panel2',
autoWidth:true,
frame:true,
height: Ext.get("grid-div2").getHeight(),
width: Ext.get("grid-div2").getWidth(),
labelAlign : 'center',
//region:'south',
items:[mainpanel,bottom]
});
win = new Ext.Window({
id:'win',
resizable:false,
height: Ext.get("grid-div2").getHeight(),
width: Ext.get("grid-div2").getWidth(),
//frame:true,
closable: false,
modal:true,
items: panel2,
layout: 'fit'
});
//Ext.getCmp('mainpanel').hide();
//Ext.getCmp('windowt').show();
//win.show();
//win.hide();
function hiddenwindow(){
win.hide();
};
});
})();
下面是一些常用操作的总结:
//把一个json对象转换成一个model(record):response.responseText={item:xxxx,success:xxxx}
var result = Ext.util.JSON.decode(response.responseText);
var Record = actStore2.recordType;
for(var i=0;i<result.items.length;i++){
var r = new Record(result.items[i]); //转成Record
actStore2.insert(0,r);
};
//把一个model(record)对象转换成一个json对象:
var acts = actGrid.getSelectionModel().getSelections();
var jsonData = "[";
Ext.each(acts, function(record) {
jsonData +=Ext.encode(record.data)+",";
});
jsonData=Ext.util.Format.substr(jsonData,0, jsonData.length-1);
jsonData += "]";
//删除选中的数据:前台删除:
/*for(var i = 0 ; i < acts.length ; i++){
actStore.remove(acts[i]);
}*/
//ajax与后台交互:
var actids='?';
Ext.each(acts, function(item) {
actids=actids+'actid='+item.data.actid+'&';
});
Ext.each(acts, function(item) {
actids=actids+'envcode='+item.data.envcode+'&';
});
actids=Ext.util.Format.substr(actids,0, actids.length-1);
Ext.Ajax.request({
url : 'QueryActivityViewToApplyRel.action'+actids,
method : 'POST',
success : function(response,options){
var result = Ext.util.JSON.decode(response.responseText);//json->object
var Record = actStore2.recordType;
for(var i=0;i<result.items.length;i++){
var r = new Record(result.items[i]); //转成Record
actStore2.insert(0,r);
};
}
});
//后台的一般格式为:
public class QuerAction {
private String actid;
private String envcode;
private String msg;
private long results;
private List items;
private boolean success;
public String execute() throws Exception {
QueryDqs = new QueryDe();
try{
items = qs.seleco(actid,envcode);
results = items.size();
if(results < 1){
success=false;
return this.ERROR;
}
else
success=true;
} catch (Exception e) {
e.printStackTrace();
success=false;
return this.ERROR;
}
return this.SUCCESS;
}
//后台的json解析:
public static List json2List(String jsonString, Class pojoClass){
List list = new ArrayList();
try {
JSONArray jsonArray = JSONArray.fromObject(jsonString);
JSONObject jsonObject;
Object pojoValue;
for ( int i = 0 ; i<jsonArray.size(); i++){
jsonObject = jsonArray.getJSONObject(i);
pojoValue = JSONObject.toBean(jsonObject,pojoClass);
list.add(pojoValue);
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}
//刷新:
actStore.load({params:{UserCode:devPerson, BrhCode:devStream,
envCode:envQuery,actQuery:actQuery},
callback:function afterQuery(response,options, success){
msgTip.hide();
if(!success)
{
Ext.MessageBox.alert("提示","没有待发布的活动!");
actStore.removeAll();
}
}
});
//获取一个组建id为textF的值(文本域)
var actQuery = Ext.get('textF').dom.value;
//出发时间的时候刷新URL
actStore.load({params:{UserCode:devPerson, BrhCode:devStream,
envCode:envQuery,actQuery:actQuery},
callback:function afterQuery(response,options, success){
msgTip.hide();
if(!success)
{
Ext.MessageBox.alert("提示","没有待发布的活动!");
actStore.removeAll();
}
}
});
//菜单加载和后边数据页面显示:
function buildTree(node){
var tn = new Ext.tree.TreeNode({
text : node.name,
url : node.url,
leaf : node.nodeList.length==0,
expanded : true//默认展开根节点
});
for(var i=0;i<node.nodeList.length;i++){
tn.appendChild(buildTree(node.nodeList[i]));
}
return tn;
}
function getTreeRoot2(){
Ext.MessageBox.show({
title:'请稍候',
msg:'正在加载菜单,请耐心等待...',
progress:true
});
var root=null;
var conn = Ext.lib.Ajax.getConnectionObject().conn;
conn.open("GET", 'ree.action?r='+Math.random(),false);
conn.send(null);
var json = Ext.util.JSON.decode(conn.responseText);
root=buildTree(json.node);
Ext.MessageBox.hide();
return root;
}
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif';
var username = '<%=tUsername%>';
var role = '<%=tRole%>';
var root = getTreeRoot2();
var menu = new Ext.tree.TreePanel({
border : false,
root : root,
hrefTarget : 'mainContent',
listeners : {
click : function(node,e){
mainPanel.load({
url:node.attributes.url,
callback : function(){
mainPanel.setTitle('<新版本>'+node.text+node.attributes.url);
},
scripts: true
});
}
}
});
new Ext.Viewport({
title : 'Ext.Viewport示例',
layout:'border',//表格布局
items: [{
title : '用户:'+username,
items : menu,
split:true,
autoScroll:true,
collapsible: true,
region:'west',//指定子面板所在区域为west
width: 150
},{
title: '首页',
contentEl : 'aboutDiv',
collapsible: true,
autoScroll:true,
id : 'mainContent',
region:'center'//指定子面板所在区域为center
}]
});
var mainPanel = Ext.getCmp('mainContent');
});