根据传递过来的参数生成单选和多选菜单,并在单击菜单子项和离开多选菜单项后提交请求
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
} ]
});
}
});
分享到:
相关推荐
NULL 博文链接:https://chinadeng.iteye.com/blog/794209
从源码生成Ext 基础用法: DomQuery基础 Ext中的事件 简述模板 模板(Templates)的函数 教你创建Ext UI控件 事件的处理 Ext中的继承 Ext的类设计 Ajax通讯 JSON处理方法 函数的原型扩展 组件的使用: Tab标签...
extjs生成树菜单,多个子节点,支持无限分类,并且各个子菜单链接都加上,点击可触发相应的事件处理或者页面跳转。这个本来是在yii后台用的
需求 要求生成一颗部门树,初始只列出根部门 当点击一个部门节点时,动态载入该部门下的直属子部门,并展开该部门节点 部门节点要求支持右键单击事件,当点击右键时,列出相关操作菜单 二. 关键类 这里主要涉及Ext ...
内容索引:.NET源码,Ajax相关,EXTjs 结合EXTJS类库动态生成Grid数据列表的演示,如果你没有配置数据库信息,那么程序运行时会自动弹出数据安装窗口,安装完成就可以查看演示了,基于EXT风格的Ajax数据列表,简洁实用...
8.3. DomHelper和Template动态生成html 8.3.1. DomHelper用来生成小片段 8.3.2. 批量生成还是需要Template模板 8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害的MemoryProxy 8.4.1.2. 常规武器HttpProxy...
8.3. DomHelper和Template动态生成html 8.3.1. DomHelper用来生成小片段 8.3.2. 批量生成还是需要Template模板 8.3.3. 醍醐灌顶,功能强劲的模板引擎XTemplate。 8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. ...
基于内存多叉树的Ext JS无限级树形菜单实现方案,一种构建多级JSON的方法;一次性构造多级JSON字符串,一次性生成树形菜单。
8.3. DomHelper和Template动态生成html 8.3.1. DomHelper用来生成小片段 8.3.2. 批量生成还是需要Template模板 8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害的MemoryProxy 8.4.1.2. 常规武器...
4.4.4 实现动态加载:ext.loader / 151 4.4.5 管理类的类:ext.classmanager / 159 4.4.6 类创建的总结 / 161 4.5 动态加载的路径设置 / 163 4.6 综合实例:页面计算器 / 165 4.7 本章小结 / 169 第5章 ext ...
Ext JS是一个全面且安全JavaScript框架,具有包含140多种企业级UI组件的强大库,这些组件包括数据网格,数据透视网格,树,图表,D3可视化,表单,日历,按钮,菜单等。 Ext JS功能丰富的组件已预先构建和测试,...
表格的菜单插件,用来给ext的menu添加事件和生成视图
8.3. DomHelper和Template动态生成html 8.3.1. DomHelper用来生成小片段 8.3.2. 批量生成还是需要Template模板 9. 沉寂吧!我们要自己的控件。 9.1. 下拉树形选择框TreeField 9.2. 带全选的checkbox树形...
Ext.aspx: ExtJs格式文件 List.aspx: Asp.net文件 一、Extjs文件如:友情链接 A、文件名称 说明:表名大小写与菜单的modulecode填写一致 1、删除文件:Del+表名.js 2、编辑文件:Edit+表名.js 3、列表文件...
可以正确识别 mkisofs 2.00/2.01 生成有 bug 的 Joliet 格式光盘。 2013-10-18 1.新增功能类似CMD的PATHEXT,可以设置默认的扩展名。 使用command --set-ext设置,每个扩展名使用";"分隔 例子: command --...
本方法使用了phpStudy自带的php_soap.dll,不需要下载任何插件,只需要在phpStudy的菜单中打勾php_soap(见压缩包中的截图) index.html中的部分说明: PHP+SOAP实现WebService测试 配置 环境配置:PhpStudy...
-动态生成菜单实例(other\menu_dynamic_run.aspx和other\menu_dynamic2_run.aspx)(feedback:shguo)。 -优化AJAX的内部实现,每个页面保存的ViewState现在减少1/3左右(重要更新)。 -优化Tree节点的NodeId自动...
菜单管理:增删改查菜单 ztree(自定义菜单)业务菜单和系统菜单分离 5. 数据字典:无限级别,支持多级别无限分类。内设编号,排序等 6. 系统设置:修改系统名称,邮件服务器配置,短信账号设置,图片水印配置,...