动态加载选择树
来源:互联网 发布:51黑单片机论坛 编辑:程序博客网 时间:2024/06/06 00:27
//派工表单
function getAddOrgForm() {
var addOrgForm = new Ext.FormPanel({
layout : 'column',
border : false,
bodyStyle:'padding:5px 5px 0',
iconCls:'icon-form-add',
labelAlign:'right',
items: [
{
columnWidth: 1,
layout:'column',
border : false,
items:[
{
columnWidth : 1, //占100%
layout : 'form',
labelWidth : 100,
border : false,
items:{fieldLabel : '',
width : 200,
xtype : 'textfield',
name:"createId",
maxLength : 128,
xtype:'hidden'
}
},
{
columnWidth : 1,
layout : 'form',
labelWidth : 100,
border : false,
items:{
fieldLabel:'维修单编号',
width : 200,
xtype : 'textfield',
name:'ws_num',
id:"ws_num",
maxLength : 128,
readOnly: true
}
},
{
columnWidth : 1,
layout : 'form',
border : false,
labelWidth : 100,
items : {
fieldLabel:cf_getRequiredItem('工种编号'),
xtype:"textfield",
name:'tow_id',
id:'tow_id',
width : 200,
allowBlank:false,
blankText:'<s:text name="com.messages.required"/>',
xtype:"hidden"
}
},
{
columnWidth:0.85,
layout:'form',
labelWidth:100,
border:false,
items:{
fieldLabel:cf_getRequiredItem('派工'),
xtype:"textarea",
name:'person_name',
id:'person_name',
blankText:'<s:text name="com.messages.required"/>',
width:200,
allowBlank:false,
readOnly:"true"
}
},{
columnWidth : 0.15,
layout : 'form',
border : false,
items : {
xtype:'button',
text:'派工',
listeners: {
click:function(){
var url = '<iframe id="menuPopup" src ="<%= jspPath %>/fix/menu.jsp" frameBorder="0" height="100%" width="100%"></iframe>';
var win = cf_ShowWindowDialog(url,320,420);
win.setIconClass('grid');
win.setTitle('派工');
win.show();
win.buttons[0].on('click',function() {
var treePanel;
if(Ext.isIE)
treePanel = document.frames['menuPopup'].getTreePanel();
else
treePanel = document.getElementById('menuPopup').contentWindow.getTreePanel();
var array;
if(Ext.isIE)
array = document.frames['menuPopup'].getRecordArray();
else
array = document.getElementById('menuPopup').contentWindow.getRecordArray();
var records = filterDupFunctionRecord(array); //注意使用到底下的方法
if (array.length < 1 || records.length < 1) {
Ext.MessageBox.alert('<s:text name="com.title.notice"/>', '对不起,您没有选择任何人员');
return false;
}
console.log(records);
var name = "";
var tow_id = "";
for(var i = 0,len = records.length; i < len; i++) {
//alert(records[i].get('name'));
if(records[i].get('checked'))
{
if(name == "")
{
name=records[i].get('name');
tow_id = records[i].get('id');
}else
{
name =name + "," + records[i].get('name');
tow_id=tow_id+ "," + records[i].get('id');
}
}
}
Ext.getCmp("person_name").setValue(name);
Ext.getCmp("tow_id").setValue(tow_id);
win.close();
}
);
}
}
}
}
]
}
],
buttons: [
{
text: '<s:text name="com.label.save"/>',
handler: function() {
/*
if (addOrgForm.getForm().isValid()) { //如果验证通过
if (isExist == true) { //如果部门编号已经存在
addOrgForm.getForm().findField('person_id').markInvalid('<s:text name="com.messages.org.exists"/>');
return false;
}
cf_ShowMessageBox('<s:text name="com.messages.saving"/>');
addOrgForm.form.doAction('submit',{ //å°è¡¨åæ°æ®æ交å°æå¡å¨
url:'repairmanAction!insertRepairman.shtml',
method:'post',
success:function(form,action) {
Ext.MessageBox.alert('<s:text name="com.title.notice"/>','<s:text name="com.messages.save.success"/>',
function(btn) {
if (btn == BUTTON_OK) {
win.hide();
roleDs.removeAll();
root.reload();
};
});
},
failure:function() {
Ext.MessageBox.alert('<s:text name="com.title.notice"/>','<s:text name="com.messages.save.failure"/>');
}
});
}
*/
}
},{
text: '<s:text name="com.label.reset"/>',
handler: function() {
//addOrgForm.getForm().findField('person_name').setValue("");
}
},{
text: '<s:text name="com.label.cancel"/>',
handler: function() {
win.hide();
}
}]
});
return addOrgForm;
}
function filterDupFunctionRecord(receiveArray) { //è¿æ»¤æ°ç»ä¸çéå¤è®°å½
var arrResult = new Array(); //å®ä¹ä¸ä¸ªè¿åç»ææ°ç»
for (var i = 0; i < receiveArray.length; i++) {
if (isDuplicateFunction(arrResult, receiveArray[i]) == -1) { //æä¸éå¤çè®°å½æ¾å ¥æ°æ°ç»
arrResult.push(receiveArray[i]);
} else { //éå¤çè®°å½åæåä¸ä¸ª,å 为è¦è·å¾æåçé项
arrResult.removeAt(isDuplicateFunction(arrResult, receiveArray[i]));
arrResult.insert(i,receiveArray[i]);
}
}
return arrResult;
}
function isDuplicateFunction(receiveArray, checkItem) { //å¤æè®°å½æ¯å¦éå¤
var index = -1; // å½æ°è¿åå¼ç¨äºå¸å°å¤æ
for (var i = 0; i < receiveArray.length; i++) {
if (receiveArray[i].get('functionId') == checkItem.get('functionId')) {
index = i; //å¦æéå¤,è¿åå½åindex
break;
}
}
return index;
}
Ext.apply(Ext.form.VTypes, {
password : function(val, field) {
if (field.initialPassField) {
var pwd = Ext.getCmp(field.initialPassField);
return (val == pwd.getValue());
}
return true;
},
passwordText : '与输入密码不匹配'
});
menu.jsp
<%@ include file="/jsp/include/doctype.jsp" %>
<%@ include file="/jsp/include/head.jsp" %>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title><s:text name="com.title.funcmenu"/></title>
</head>
<script type="text/javascript" src="<%= extPath %>/source/widgets/TreeCheckNodeUI.js"></script>
<script type="text/javascript">
var treePanel;
var records;
var array = new Array();
Ext.onReady(function() {
var dataStore = new Ext.data.Store({ //è·å¾æ ¹èç¹æ°æ®å
容
proxy: new Ext.data.HttpProxy({
url: 'servicemanAction!getTypeOfWorkTree.shtml?parentId=' + ROOT_PARENTCODE //全局变量,默认值为0
}),
reader: new Ext.data.JsonReader({root: 'list'},
[
{name: 'functionId'},
{name: 'name'},
{name: 'href'},
{name: 'url'},
{name: 'selfCode'},
{name: 'parentCode'},
{name: 'checked'},
{name: 'isLeaf'}
]),
autoLoad:false
});
dataStore.load();
var RecordSet = Ext.data.Record.create([ //è¿éçidå°±æ¯self code
{name: 'id'},
{name: 'roleId'},
{name: 'name'},
{name: 'functionId'},
{name: 'checked'}
]);
dataStore.on('load',function(store,record,options){
records = record;
treePanel = new Ext.tree.TreePanel({
el: 'treeList',
border: false,
useArrows: false, //true:使ç¨ç®å¤´æ¾ç¤ºæ ç»æ,false:使ç¨åç´çº¿æ¾ç¤ºæ ç»æ
autoScroll: true,
checkModel: 'childCascade', //对æ ç级èå¤é
animate: true,
enableDD: false,
containerScroll: true,
lines: true,
loader: new Ext.tree.TreeLoader({
baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI }
})
});
root = new Ext.tree.AsyncTreeNode({ //设置ç»çæ ¹èç¹
text: '<s:text name="com.messages.data.loading"/>', //ä»æ°æ®åºä¸è¯»åtextåå¡«å
draggable: false,
id: '<%= CommonConstant.ROOT_NODE_ID %>' //æ ¹èç¹ID
});
root.on('beforeload',function(){
root.setText(record[0].data.name);
});
treePanel.setRootNode(root); //æ·»å æ ¹èç¹
treePanel.on('beforeload', function(node){ //æ¥æ¾åèç¹
//alert(node.id);
//if(records[0].data.isLeaf==1){
//alert(node.id);
//alert(records[0].data.isLeaf);
treePanel.loader.dataUrl = 'servicemanAction!getJsonTowTree.shtml?parentId=' + node.id;
if(node.id!=100){
treePanel.loader.dataUrl = 'servicemanAction!getJsonTowTreeByIbsUser.shtml?parentId=' + node.id;
}
});
treePanel.on('click',function(node) {
//alert(node.id);
node.toggle();
});
treePanel.on('check',function(node,checked) {
var rs = new RecordSet({
id: node.id,
name: node.attributes.name,
roleId: <%=request.getParameter("roleId")%>,
functionId: node.attributes.functionId,
checked: checked
});
array.push(rs);
});
treePanel.render();
root.expand();
});
});
function getRecordArray() {
return array;
}
function getTreePanel() {
return treePanel;
}
</script>
<body>
<div id="treeList" style="overflow:auto;width:302px;height:343px;border:0px solid #c3daf9;"></div>
</body>
</html>
- 动态加载选择树
- Mustache动态加载选择框
- 动态加载树----treeView
- 动态加载树
- 动态加载树TreeView
- 动态加载树----treeView
- 动态加载树
- ext动态加载树
- extjs4 动态加载树
- flex树动态加载
- 动态加载树----treeView
- 动态加载树----treeView
- Extjs动态加载树
- Extjs4.2 表格动态数据加载,以及动态选择分页条目,前后台详解
- 动态选择
- yui-tree动态加载树
- Extjs 动态异步加载树
- Dtree+JQuery动态加载树
- 初次使用Cordova/Phonegap遇到的两个常见问题
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- Windows Server2003无法识别移动硬盘的解决办法
- 学习hp-unix的ipcs命令和ipcrm命令
- 关于OnNavigatedTo和OnNavigatedFrom
- 动态加载选择树
- 性能调优基础--OWI学习笔记(一)
- HTML <meta> 标签
- JSP中请求链接页面为中文的情况,找不到页面解决方案
- list,map,set互转
- 解决Sublime Text 2中文显示乱码问题
- java读写文件中文乱码问题
- oracle截取字段内容
- 设置wifi及gprs