用extjs將指定路徑的文件夾以樹的形式顯示出來,且文件夾在上文件在下

後臺代碼:

<span style="white-space:pre">			</span>String fid = request.getParameter("fid");
			if("Root".equals(fid)){
				fid = Tools.getFilePath()+"MBXM/ZYDL/";
			}
			JSONArray array = new JSONArray();
			JSONArray array1 = new JSONArray();
			JSONArray array2 = new JSONArray();
			File file = new File(fid);
			//List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
			if(file.exists()){
				if(file.isDirectory()){
					File [] filelist = file.listFiles();
					if(filelist!=null&&filelist.length>0){
						for (File files : filelist) {
							//Map<String, Object> map = new HashMap<String, Object>();
							JSONObject obj1 = new JSONObject();
							JSONObject obj2 = new JSONObject();
							//是否有下一級
							obj1.put("fid",files.getAbsolutePath());
							obj1.put("text", files.getName());
							obj2.put("fid",files.getAbsolutePath());
							obj2.put("text", files.getName());
							if(files.list() !=null && files.list().length >=0){
								obj1.put("leaf", false);
								array1.add(obj1);
							}else {
								obj2.put("leaf", true);
								array2.add(obj2);
							}
						}
					}
				}
			}
			
			for(int i=0;i<array1.size();i++){
				array.add(array1.get(i));
			}
			for(int i=0;i<array2.size();i++){
				array.add(array2.get(i));
			}
			msg = array.toString();

前臺頁面:

var left_fs = new Ext.tree.TreePanel({
		//height : 100,
		id:'menuTree',
		height : 440,
		columnWidth : 0.5, 
		useArrows : true,
		animate : true, 
		autoScroll:true, 
		//enableDD : false,
		root :new Ext.tree.AsyncTreeNode({
			fid : 'Root',
			text:'選擇個性化頁面(單擊刷新)',
			expanded : true,
			draggable : false,
			listeners:{
				click:function(node){
					node.reload();
				}
			}
		}),
		loader : new Ext.tree.TreeLoader({
			dataUrl:basePath+'servlet/back/CZZDglS?type=cxZYDLTree&KHID='+KHID+'&check=false',
			listeners : {
				beforeload : function(TreeLoader, node) {
				    var fid = node.attributes.fid;
					this.baseParams.fid = fid;
				}
			}
		}),
		listeners : {
			click : function(node){
					if(node.isLeaf()){
						var GXHYMLJ = node.attributes.fid;
						//var start = 'D:/ITAPWH/files/MBXM/ZYDL/';
						var start = filePath +'MBXM/ZYDL/';
						GXHYMLJ = GXHYMLJ.substring(start.length-1,GXHYMLJ.length);
						var array = GXHYMLJ.split('\\');
						var GXHYMLJ_new ='';
						for(var i=0;i<array.length;i++){
							GXHYMLJ_new = GXHYMLJ_new + array[i];
							GXHYMLJ_new = GXHYMLJ_new + '/';
						}
						GXHYMLJ_new = GXHYMLJ_new.substring(0,GXHYMLJ_new.length-1);
						
						var Plant = gxhym_store.recordType;
						var p = new Plant({
							YMLJ: GXHYMLJ_new
						});
						
						var data=gxhym_store.data;
						var array = [];
						var all_ymlj ='';
						
						var flag = false;
						if (data.length > 0) {
							for (var i = 0; i < data.length; i++) {
								var rec = data.get(i);
								var YMLJ = rec.get('YMLJ');
								if(YMLJ !=undefined){
									all_ymlj = all_ymlj + "," + "'"  + YMLJ + "'";
									
								}
								if(all_ymlj.indexOf("'" + GXHYMLJ_new + "'") != -1){
									flag = true;
								}
							}
						}
						if(flag){
							Ext.Msg.show({
								title : '提示',
								msg : "頁面路徑[" + GXHYMLJ_new + "]重複,請重新選擇",
								buttons : {
									"ok" : "確定"
								},
								icon : Ext.MessageBox.INFO
							});
							return;
						}
						gxhym_store.insert(gxhym_store.data.length-1, p);
						
					}
			}

		}
	});


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章