Ext动态生成菜单

根据传递过来的参数生成单选和多选菜单,并在单击菜单子项和离开多选菜单项后提交请求

Ext.onReady(function(){
// 图表报表工具条
var repImgToolBar;

// 报表详情工具条
var repDetailToolBar;

// 创建单选菜单
function createChaMenu() {
// 对象的显示值
// analyObjSeleValue是一个数组里面放的是每个菜单的title值,如 =[北京,上海,西安]
var arr = analyObjSeleValue.split(",");

// 对象的key
// objKey是一个数组里面放的是每个菜单的name值,如 =[beijing,shanghai,xian],与上面的对应
var objKey = Ext.get("hide_ayobj_btn").dom.innerHTML.split(",");

var menuArray = [];
var curMenu;
for ( var i = 0; i < arr.length; i++) {
curMenu = {
text : arr[i],
name : i,
handler : function(text) {
alert(text.text + " , " + objKey[text.name]);
// 判断是否为局向
if (analyObjValue == "landir") {
var opc = objKey[text.name].split("-")[0];
var dpc = objKey[text.name].split("-")[1];

var p1_sdrwhere = Ext.get('p1_where');
p1_sdrwhere.dom.value = " dpc = 11500 ";
}

var p1_sdrwhere = Ext.get('p1_where');
p1_sdrwhere.dom.value = " dpc = 11500 ";

// 提交表单
var sdrFormImg = Ext.get('sdrFormImg');
sdrFormImg.dom.submit();
}
};
menuArray.push(curMenu);
}
return menuArray;
}

// 创建多选菜单
function createTarMenu(rownum) {
var menuArray = [];
var curMenu;

// 默认加载第一个分析指标(grid第一行)
// changeAndKPIName = ["3#attemptcount,alerting...bability,sdcchdropcount",
// "7#xldhl,tchdropcount,zp...rduration,pjzysc,pjthsc"]
var targetArray = changeAndKPIName[rownum].split("#")[1].split(",");

// 默认不勾选,传递过来的指标设置为勾选
for ( var m = 0; m < ay_all_target[0].length; m++) {
var isCheck = false;
for(var n = 0; n < targetArray.length; n++){
// 有被选择的指标加上勾选状态
if(targetArray[n] == ay_all_target[0][m].data.name){
isCheck = true;
}
}
curMenu = {
checked : isCheck,
text : ay_all_target[0][m].data.title,
name : ay_all_target[0][m].data.name
};
menuArray.push(curMenu);
}
return menuArray;
}

/**
* 为避免重复菜单,每次切换tabPanel时删除工具条和菜单
*/
function removeMenu() {
if (Ext.fly("objchange")) {
Ext.fly("objchange").remove();
}
if (Ext.fly("targetsele")) {
Ext.fly("targetsele").remove();
}
if (Ext.fly("repImgMenu")) {
Ext.fly("repImgMenu").remove();
}
}
// 动态生成菜单
// tabVal 是当前的tabPanel对象,tabIndex是生成tabPanel时设定的参数
// 在点击每个tabPanel时,调用此方法
function dynamicCreateMenu(tabVal) {
var objChangeMenu = [];
objChangeMenu = createChaMenu();

// first Menu
var firstMenu = new Ext.menu.Menu( {
id : 'objchange',
items : objChangeMenu
});
var rowIndex = tabVal.tabIndex;
var targetSeleMenu = [];
targetSeleMenu = createTarMenu(rowIndex);

// second Menu
var secondMenu = new Ext.menu.Menu( {
id : 'targetsele',
items : targetSeleMenu,
listeners : {
/**
* 选中时只保存选中状态,不隐藏
*
* @param {Object}
* bi baseItem
* @param {Object}
* e check EventObject
* @return {TypeName}
*/
'itemclick' : function(bi, e) {
if (bi.checked) {
bi.setChecked(false);
} else {
bi.setChecked(true);
}
return false;
},

/**
* 让菜单隐藏之提交表单
*
* @param {Object}
* em 当前menu
*/
'beforehide' : function(em) {
Ext.each(em.items.items, function(ite) {
// 给相应的form里面的域赋值
// 如果没有选择,隐藏表单中设为0
if (!ite.checked) {
Ext.get("p1_" + ite.name).dom.value = 0;
}
});

// 提交图表对比表单
var sdrFormImg = Ext.get('sdrFormImg');
sdrFormImg.dom.submit();
}
}
});

repImgToolBar = new Ext.Toolbar( {
id : 'repImgMenu',
renderTo : 'rightRepImgMenu',
style : 'align: right',
width : 150,
items : [ {
text : 'First',
menu : firstMenu
}, "-", {
text : 'Second',
menu : secondMenu
} ]
});
}
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值