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(" ");
}
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(" "+"<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();
}
分享到:
相关推荐
s2sh+freemarker+jquery+jquery-treeview 无限级树形菜单
jQuery手机端无限级导航下拉菜单代码是一款很实用的移动端多级下拉菜单代码,支持无限级子菜单展开收缩。
timeline插件是一款非常简洁实用的jQuery时间轴插件,jQuery可伸缩时间轴代码。
利用jQuery插件构建无限级分类Tree,可用于多级分类的导航,代码是在dnn调试通过,其实.net程序都一样的,拿过去修改一下就好了。
jquery实现的无限级联菜单,Select下拉列表式的级联菜单,三个下拉框的值相互影响,无限级联扩展,无需ajax,纯json数据调用。调用方式请参见示例文件。
php+jquery无限级分类php+jquery无限级分类
Jquery实现伸缩效果,点击伸缩效果 下面的会合并,再点击会出来,自己做的 实用
主要介绍了json+jQuery实现的无限级树形菜单效果代码,涉及jquery针对json数据的遍历、读取及动态操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
jQuery 图片伸缩效果 放大 缩小jQuery 图片伸缩效果 放大 缩小
NULL 博文链接:https://gaojiewyh.iteye.com/blog/564698
基于ajax、jquery 通用无限级联菜单; 引用场景: 国家省市级联菜单、任何二级级联菜单、三级菜单、四级菜单、五.... 使用范例:详细参阅District.Selector.js文件 以国家地理信息为例: $(function () { var ...
58、jQuery可伸缩关闭的菜单栏
jQuery可伸缩音乐播放器.rar
实现效果: jQuery可伸缩时间轴插件timeline,有很多的插件,也有很多的特效,样式都很美观,php中文网推荐下载!
主要介绍了jQuery实现的无限级下拉菜单,涉及jQuery事件响应及页面元素属性动态变换相关操作技巧,需要的朋友可以参考下
xml+jquery实现无限级menus
jQuery左右伸缩导航是一款基于jquery实现的左右滑动伸缩导航菜单。
jQuery可伸缩搜索框是一款搜索框默认收缩隐藏,点击搜索按钮可展开搜索文本框进行输入,搜索按钮可调方向。
jquery左右伸缩滑动效果
jQuery多级无限级导航下拉菜单