`

jquery 可伸缩的无限级列表行

阅读更多
1. jsp页面
	<table  cellspacing="0"  width="100%" align="center"  class="table_title" id="table_title_bg">							
				<tr>
				    <th width="4%">					
						<input type="checkbox" name="selAll" id="selAll" value="全选" onclick="selAllNews(this)" />						
					</th>
					<th width="20%">分类名称</th>
					<th width="10%">显示顺序</th>
					<th width="10%">是否显示</th>
					<th width="10%">操作</th>					
				</tr>               

		     <%
				
				  out.print(new ArticlecatInfo().getArticleList("",0));
				
				 %>
					</table>

2.js代码
jQuery.noConflict();
		jQuery(function() {
			jQuery("#table_title_bg tr").click(function() {
				hideOrShow(this);
				
			});
		});
		
		function 	hideOrShow(val){
			var imgA = '<%=logolink%>'+'/trade/manager/mainMenu/images/1.gif';
			var imgB = '<%=logolink%>'+'/trade/manager/mainMenu/images/_1.gif';
			var cat_id = jQuery(val).attr("id");
			if(document.getElementById("img"+cat_id).src==imgA){
				document.getElementById("img"+cat_id).src=imgB;
			}else{
			  document.getElementById("img"+cat_id).src=imgA;
			}
			var this_id = jQuery("#this_id").val();
			var this_val= jQuery("#this_val").val();
			var cat_name = jQuery(val).attr("name");
			var all_tr=document.getElementsByTagName("tr");
			for(var i=0;i<all_tr.length;i++){
				var tr_name = jQuery(all_tr[i]).attr("name");
				var tr_id = jQuery(all_tr[i]).attr("id");
				if(tr_name!=undefined){
					if(tr_name.indexOf(cat_name) > -1 && tr_name!=cat_name ){
					  if(this_val=='0'){
					    jQuery("#"+tr_id).hide();
					    document.getElementById("this_val").value = '1';
					    document.getElementById("this_id").value = cat_id;
						}else{
							if(this_id == cat_id){
								jQuery("#"+tr_id).show();
								document.getElementById("img"+tr_id).src=imgB;
							  document.getElementById("this_val").value = '0';
							}else{
								jQuery("#"+tr_id).hide();
						    document.getElementById("this_val").value = '1';
						    document.getElementById("this_id").value = cat_id;
							}
						}
					}
				}
			}
	 }


3.java代码--ArticlecatInfo
//构造递归列表行
	public String getArticleList(String parent_id,int cat_level_para){
		cat_level_para ++ ;
		String sql="select cat_id,cat_name,cat_level,sort_order,is_nav_show from zl_article_cat where parent_id='"+parent_id+"' and cat_level="+cat_level_para+" order by sort_order desc";
		StringBuffer catbuffer=new StringBuffer();
		ArrayList list = new ArrayList();
		String cat_id="",cat_name="",cat_level="",sort_order="",is_nav_show="";
		list = new DbexecuteDAO().selBizQuery(sql);
		if(list==null||list.size()<=0){return "";}
		for (int i = 0; i < list.size(); i++){
				HashMap map = (HashMap) list.get(i);
				if (map.get("cat_id") != null) {cat_id = map.get("cat_id").toString();}
				if (map.get("cat_name") != null) {cat_name = map.get("cat_name").toString();}
				if (map.get("cat_level") != null) {cat_level = map.get("cat_level").toString();}
				if (map.get("sort_order") != null){sort_order = map.get("sort_order").toString();}
				if (map.get("is_nav_show") != null) {is_nav_show = map.get("is_nav_show").toString();}
				String cat_tr = "",imge="";StringBuffer trr=new StringBuffer();
				cat_tr  =  cat_id+"|"+getTreeUpId(cat_id);
				if(!cat_tr.equals("")){
					String tr[]=cat_tr.split("\\|");
					for(int j=tr.length-1;j>=0;j--){
						trr.append(tr[j]+"|");
					}
				}
			catbuffer.append("<tr name='"+trr.toString()+"' id='"+cat_id+"' onMouseMove=\"javascript:this.bgColor='#eaeefd';\" onMouseOut=\"javascript:this.bgColor='#FFFFFF';\" >");
				catbuffer.append("<td class='pdding_a'>");
				catbuffer.append("<input type='checkbox' name='"+cat_id+"' id='"+cat_id+"' value='"+cat_id+"'/>");
				catbuffer.append("</td>");
				catbuffer.append("<td align='left'  class='pdding_a'>");
				StringBuffer nbsp=new StringBuffer();
				for(int j=4;j<Integer.parseInt(cat_level)*4;j++){
					nbsp.append("&nbsp;");
				}
				imge="<img id='img"+cat_id+"' src='/trade/manager/mainMenu/images/_1.gif'/>";
				catbuffer.append(nbsp.toString()+imge+cat_name);
				catbuffer.append("</td>");
				catbuffer.append("<td align='left'  class='pdding_a'>");
				catbuffer.append("&nbsp;"+"<input type=\"text\" name='"+cat_id+"' id='"+cat_id+"' value='"+sort_order+"' size=\"2\"  maxlength=\"2\" onKeyUp=\"if(isNaN(value))this.value=''\"/>");
				catbuffer.append("</td>");
				catbuffer.append("<td align='left'  class='pdding_a'>");
				if(is_nav_show.equals("0"))
				     catbuffer.append("不显示");
				else if(is_nav_show.equals("1")) 
					 catbuffer.append("显示");	
				catbuffer.append("</td>");
				catbuffer.append("<td align='left'  class='pdding_a'>");
		        catbuffer.append("<a href=modifyAticleCat.jsp?cat_id="+cat_id+"><img src=/images/edit.gif width=16 height=16 border=0 /></a>");
				catbuffer.append("</td>");
				catbuffer.append("</tr>\n");
				if(isNotDownCat(cat_id)){
				catbuffer.append(getArticleList(cat_id,Integer.parseInt(cat_level)));
				}
		  }
		return catbuffer.toString();
	}
public boolean isNotDownCat(String parent_id){
		String sql="select cat_id from zl_article_cat where parent_id='"+parent_id+"' ";
		ArrayList downlist = new DbexecuteDAO().selBizQuery(sql);
		if(downlist!=null && downlist.size()>0){
			return true;
		}else{
			return false;
		}
	}
//找出该级上级拼串
	public String getTreeUpId(String cat_id){
		String sql="select parent_id from zl_article_cat where cat_id='"+cat_id+"' ";
		ArrayList list = new ArrayList();
		String up_id="";
		StringBuffer up_ids=new StringBuffer();
		list = new DbexecuteDAO().selBizQuery(sql);
		if(list==null||list.size()<=0){return "";}
		for(Iterator it=list.iterator();it.hasNext();){
			HashMap map = (HashMap)it.next();
			if (map.get("parent_id") != null) {
			  up_id=map.get("parent_id").toString();
			  if(up_id.equals(""))break;
			  //System.out.println("----------->"+up_ch_id);
			  up_ids.append(up_id+"|");
			  up_ids.append(getTreeUpId(up_id));
			}
		}
		return up_ids.toString();
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics