jQTreeTable在Asp.net中的应用

树形结构是我们在写程序中会常用到的一种方法。如:部门组织结构、新闻产品类别结构等等。JQuery中有一个不错的组件,叫JQTreeTable,能简单直观的在Table中显示树形结构,如下图所示:

jQTreeTable在Asp.net中的应用

通过JQTreeTable与Asp.net的配合,我们可以把这种效果应用到自己的系统中。

一、先来看一下一个栏目的数据表的设计:

数据表结构:

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用Code
jQTreeTable在Asp.net中的应用CREATE TABLE [dbo].[Catalog](
jQTreeTable在Asp.net中的应用    
[Id] [int] IDENTITY(1,1NOT NULL,                                        --序号
jQTreeTable在Asp.net中的应用
    [Name] [varchar](255) COLLATE Chinese_PRC_CI_AS NOT NULL,                --名称
jQTreeTable在Asp.net中的应用
    [DisplayName] [varchar](255) COLLATE Chinese_PRC_CI_AS NOT NULL,        --显示名称/路径
jQTreeTable在Asp.net中的应用
    [ImageUrl] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,                --图片
jQTreeTable在Asp.net中的应用
    [Comment] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,                --备注
jQTreeTable在Asp.net中的应用
    [NodeCode] [varchar](255) COLLATE Chinese_PRC_CI_AS NOT NULL,            --节点编码
jQTreeTable在Asp.net中的应用
    [ParentCode] [varchar](255) COLLATE Chinese_PRC_CI_AS NOT NULL,            --上级节点编码
jQTreeTable在Asp.net中的应用
    [Url] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,                    --链接
jQTreeTable在Asp.net中的应用
    [IsLeaf] [bit] NOT NULL CONSTRAINT [DF_NewsCatalog_IsLeaf]  DEFAULT (1),--是否叶子节点
jQTreeTable在Asp.net中的应用
    [OrderId] [int] NOT NULL CONSTRAINT [DF_Catalog_OrderId]  DEFAULT (0)   --排序
jQTreeTable在Asp.net中的应用

数据示例:

jQTreeTable在Asp.net中的应用

二、再来看一下页面的代码:

 

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用Code
jQTreeTable在Asp.net中的应用using System;
jQTreeTable在Asp.net中的应用
using System.Data;
jQTreeTable在Asp.net中的应用
using System.Configuration;
jQTreeTable在Asp.net中的应用
using System.Collections;
jQTreeTable在Asp.net中的应用
using System.Collections.Generic;
jQTreeTable在Asp.net中的应用
using System.Web;
jQTreeTable在Asp.net中的应用
using System.Web.Security;
jQTreeTable在Asp.net中的应用
using System.Web.UI;
jQTreeTable在Asp.net中的应用
using System.Web.UI.WebControls;
jQTreeTable在Asp.net中的应用
using System.Web.UI.WebControls.WebParts;
jQTreeTable在Asp.net中的应用
using System.Web.UI.HtmlControls;
jQTreeTable在Asp.net中的应用
using NHibernate.Expression;
jQTreeTable在Asp.net中的应用
using YKSoft.CMS.Entity;
jQTreeTable在Asp.net中的应用
namespace WebSite.Admin
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用    
public partial class CatalogList : BasePage
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用    
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用        
//JQTreeTable要的参数
jQTreeTable在Asp.net中的应用
        protected string strMap = "";
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用        
protected void Page_Load(object sender, EventArgs e)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用            
if (!Page.IsPostBack)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                BindDataList();
jQTreeTable在Asp.net中的应用            }

jQTreeTable在Asp.net中的应用        }

jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用        
private void BindDataList()
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用            
//根据OrderId,NodeCode asc 排序获得的数据记录集
jQTreeTable在Asp.net中的应用
            IList<Catalog> catalogs = Catalog.FindAllOrderByOrderId();
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用            IList
<Catalog> items = new List<Catalog>();
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用            
//对原有的数据进行重新排序
jQTreeTable在Asp.net中的应用
            foreach (Catalog item in catalogs)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                
if (String.IsNullOrEmpty(item.ParentCode))
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                    
//添加到排序后的数据集中
jQTreeTable在Asp.net中的应用
                    items.Add(item);
jQTreeTable在Asp.net中的应用                    
//生成JQTreeTable要的参数格式
jQTreeTable在Asp.net中的应用
                    if (strMap == "")
jQTreeTable在Asp.net中的应用                        strMap 
= "0";
jQTreeTable在Asp.net中的应用                    
else strMap += ",0";
jQTreeTable在Asp.net中的应用                    
//如果不是叶子节点,对子节点进行排序
jQTreeTable在Asp.net中的应用
                    if (item.IsLeaf == false)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                    
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                        ResetItems(catalogs, items, item.NodeCode);
jQTreeTable在Asp.net中的应用                    }

jQTreeTable在Asp.net中的应用                }

jQTreeTable在Asp.net中的应用            }

jQTreeTable在Asp.net中的应用            rptList.DataSource 
= items;
jQTreeTable在Asp.net中的应用            rptList.DataBind();
jQTreeTable在Asp.net中的应用        }

jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
/**//// <summary>
jQTreeTable在Asp.net中的应用        
/// 递归排序
jQTreeTable在Asp.net中的应用        
/// </summary>
jQTreeTable在Asp.net中的应用        
/// <param name="oItems">原数据集</param>
jQTreeTable在Asp.net中的应用        
/// <param name="nItems">排序后的数据集</param>
jQTreeTable在Asp.net中的应用        
/// <param name="parentCode">上级编码</param>

jQTreeTable在Asp.net中的应用        private void ResetItems(IList<Catalog> oItems, IList<Catalog> nItems, string parentCode)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用            
//保存当前排序后的数据集的记录数
jQTreeTable在Asp.net中的应用
            int CurrentNum = nItems.Count;
jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用            
foreach (Catalog item in oItems)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                
if (item.ParentCode == parentCode)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                    
//生成JQTreeTable要的参数格式
jQTreeTable在Asp.net中的应用
                    if (strMap == "")
jQTreeTable在Asp.net中的应用                        strMap 
= "0";
jQTreeTable在Asp.net中的应用                    
else strMap += "," + CurrentNum.ToString();
jQTreeTable在Asp.net中的应用                    
//添加到排序后的数据集中
jQTreeTable在Asp.net中的应用
                    nItems.Add(item);
jQTreeTable在Asp.net中的应用                    
//如果不是叶子节点,对子节点进行排序
jQTreeTable在Asp.net中的应用
                    if (item.IsLeaf == false)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                    
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                        ResetItems(oItems, nItems, item.NodeCode);
jQTreeTable在Asp.net中的应用                    }

jQTreeTable在Asp.net中的应用                }

jQTreeTable在Asp.net中的应用            }

jQTreeTable在Asp.net中的应用        }

jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用        
protected void lbtnAdd_Click(object sender, EventArgs e)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用            Response.Redirect(
"CatalogAddEdit.aspx"true);
jQTreeTable在Asp.net中的应用        }

jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用        
protected bool GetVisible(object url)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用            
if (String.IsNullOrEmpty(url.ToString()))
jQTreeTable在Asp.net中的应用                
return false;
jQTreeTable在Asp.net中的应用            
else return true;
jQTreeTable在Asp.net中的应用        }

jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用        
//删除记录
jQTreeTable在Asp.net中的应用
        protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用            
try
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                
if (e.CommandName.ToLower() == "delete")
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                    
int Id = Convert.ToInt32(e.CommandArgument.ToString());
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                    Catalog.DeleteAll(
new int[] jQTreeTable在Asp.net中的应用{ Id });
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用                    Response.Redirect(
"CatalogList.aspx"true);
jQTreeTable在Asp.net中的应用                }

jQTreeTable在Asp.net中的应用            }

jQTreeTable在Asp.net中的应用            
catch
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                JsAlert(
"数据删除出错!");
jQTreeTable在Asp.net中的应用            }

jQTreeTable在Asp.net中的应用        }

jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用        
protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用            
try
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                Catalog item 
=(Catalog)e.Item.DataItem;
jQTreeTable在Asp.net中的应用                LinkButton lbtn 
=(LinkButton) e.Item.FindControl("lbtnDel");
jQTreeTable在Asp.net中的应用                
if (item == null || lbtn == null)
jQTreeTable在Asp.net中的应用                    
return;
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用                
if (item.IsLeaf)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                    lbtn.OnClientClick 
= "return confirm('确定要删除该记录吗?');";
jQTreeTable在Asp.net中的应用                }

jQTreeTable在Asp.net中的应用                
else
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用                    lbtn.Enabled 
= false;
jQTreeTable在Asp.net中的应用                    lbtn.OnClientClick 
= "alert('该栏目存在子栏目,不能删除!');return false;";
jQTreeTable在Asp.net中的应用                }

jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用            }

jQTreeTable在Asp.net中的应用            
catch
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用            
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用            }

jQTreeTable在Asp.net中的应用        }

jQTreeTable在Asp.net中的应用    }

jQTreeTable在Asp.net中的应用}

jQTreeTable在Asp.net中的应用

 

 

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用Code
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用<%jQTreeTable在Asp.net中的应用@ Page Language="C#" AutoEventWireup="true" Codebehind="CatalogList.aspx.cs" Inherits="WebSite.Admin.CatalogList" %>
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用
<%jQTreeTable在Asp.net中的应用@ Register Assembly="YKSoft.Web.UI.WebControls" Namespace="YKSoft.Web.UI.WebControls.EasyPager"
jQTreeTable在Asp.net中的应用    TagPrefix
="cc2" 
%>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用
<%jQTreeTable在Asp.net中的应用@ Register Assembly="YKSoft.Web.UI.WebControls" Namespace="YKSoft.Web.UI.WebControls.SmartGridView"
jQTreeTable在Asp.net中的应用    TagPrefix
="cc1" 
%>
jQTreeTable在Asp.net中的应用
<html xmlns="http://www.w3.org/1999/xhtml">
jQTreeTable在Asp.net中的应用
<head runat="server">
jQTreeTable在Asp.net中的应用    
<title>无标题页</title>
jQTreeTable在Asp.net中的应用    
<!--Jquery脚本-->
jQTreeTable在Asp.net中的应用    
<script type="text/javascript" src="../Js/jquery-1.2.6.js"></script>
jQTreeTable在Asp.net中的应用    
<!--jQTreeTable脚本-->
jQTreeTable在Asp.net中的应用    
<script type="text/javascript" src="Js/jQTreeTable.js"></script>
jQTreeTable在Asp.net中的应用     
<!--jQTreeTable样式-->
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用    
<style type="text/css">jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用    * 
{jQTreeTable在Asp.net中的应用}{ font-family: 宋体,Arial, Verdana; }
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用h1 
{jQTreeTable在Asp.net中的应用}{ text-align: center; }
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用
{jQTreeTable在Asp.net中的应用}{ font-size: 10pt; }
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用    .collapsed 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    DISPLAY
: none
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用#tablemain 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用cellspacing
:0px;
jQTreeTable在Asp.net中的应用 cellpadding
:0px;
jQTreeTable在Asp.net中的应用  rules
:all;
jQTreeTable在Asp.net中的应用   border
:0px;
jQTreeTable在Asp.net中的应用  color
:#333333;
jQTreeTable在Asp.net中的应用  border-style
:Solid;
jQTreeTable在Asp.net中的应用  width
:100%;
jQTreeTable在Asp.net中的应用  border-collapse
:collapse;
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用#treetable TD 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    PADDING-RIGHT
: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; FONT: 9pt 宋体; CURSOR: pointer; PADDING-TOP: 0px
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用.ttimage 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    PADDING-RIGHT
: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: bottom; WIDTH: 16px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: 22px; BORDER-BOTTOM-STYLE: none
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用.parimg 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    PADDING-RIGHT
: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: bottom; WIDTH: 16px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: 16px; BORDER-BOTTOM-STYLE: none
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用.preimg 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    PADDING-RIGHT
: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: bottom; WIDTH: 16px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: 22px; BORDER-BOTTOM-STYLE: none
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用.parimg 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    CURSOR
: pointer
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用.even 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用.over 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    BACKGROUND-COLOR
: #dfe7ed
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用.selected 
{jQTreeTable在Asp.net中的应用}{
jQTreeTable在Asp.net中的应用    
jQTreeTable在Asp.net中的应用
}

jQTreeTable在Asp.net中的应用
</style>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用
<script type="text/javascript" >jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用$(
function()jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用    
var ei = $("#large");
jQTreeTable在Asp.net中的应用    ei.hide();
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用    $(
".CatalogImg").mousemove(function(e)jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用        ei.css(
jQTreeTable在Asp.net中的应用{top:e.pageY,left:e.pageX}).html('<img style="border:0px solid gray;" src="' + this.src + '" />').show();
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用    }
).mouseout( function()jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用        ei.hide();
jQTreeTable在Asp.net中的应用    }
)
jQTreeTable在Asp.net中的应用}
);
jQTreeTable在Asp.net中的应用
</script>
jQTreeTable在Asp.net中的应用
</head>
jQTreeTable在Asp.net中的应用
<body>
jQTreeTable在Asp.net中的应用    
<form id="form1" runat="server">
jQTreeTable在Asp.net中的应用   
<!--JQTreeTable-->
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用   
<script type="text/javascript">jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用$(
function()jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用    
//声明数组
jQTreeTable在Asp.net中的应用
    var map = [<%=strMap %>];
jQTreeTable在Asp.net中的应用    
//声明参数选项
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用
    var options = jQTreeTable在Asp.net中的应用{openImg: "images/TreeTable/tv-collapsable.gif", shutImg: "images/TreeTable/tv-expandable.gif", leafImg: "images/TreeTable/tv-item.gif", lastOpenImg: "images/TreeTable/tv-collapsable-last.gif", lastShutImg: "images/TreeTable/tv-expandable-last.gif", lastLeafImg: "images/TreeTable/tv-item-last.gif", vertLineImg: "images/TreeTable/vertline.gif", blankImg: "images/TreeTable/blank.gif", collapse: false, column: 0, striped: false, highlight: true, onselect: function(target)jQTreeTable在Asp.net中的应用{}};
jQTreeTable在Asp.net中的应用    
jQTreeTable在Asp.net中的应用   
if(map!=null&&map.length>0)
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用    
jQTreeTable在Asp.net中的应用{
jQTreeTable在Asp.net中的应用      
//根据参数显示树
jQTreeTable在Asp.net中的应用
      $("#treetable").jqTreeTable(map, options);
jQTreeTable在Asp.net中的应用    }

jQTreeTable在Asp.net中的应用}
);
jQTreeTable在Asp.net中的应用
</script>
jQTreeTable在Asp.net中的应用
jQTreeTable在Asp.net中的应用        
<div>
jQTreeTable在Asp.net中的应用            
<div class="menutbl" id="header">
jQTreeTable在Asp.net中的应用                
<table cellspacing="0" cellpadding="0">
jQTreeTable在Asp.net中的应用                    
<tr>
jQTreeTable在Asp.net中的应用                        
<td style="width: 8px">
jQTreeTable在Asp.net中的应用                        
</td>
jQTreeTable在Asp.net中的应用                        
<td nowrap="nowrap" style="font:9pt 宋体">
jQTreeTable在Asp.net中的应用                            
<asp:LinkButton ID="lbtnAdd" runat="server" OnClick="lbtnAdd_Click">
jQTreeTable在Asp.net中的应用                          
<img src="images/Action/add.gif" border="0" align="absmiddle"/>添加</asp:LinkButton></td>
jQTreeTable在Asp.net中的应用                        
<th>
jQTreeTable在Asp.net中的应用                        
</th>
jQTreeTable在Asp.net中的应用                    
</tr>
jQTreeTable在Asp.net中的应用                
</table>
jQTreeTable在Asp.net中的应用            
</div>
jQTreeTable在Asp.net中的应用            
<div style="width: 100%">
jQTreeTable在Asp.net中的应用                
<asp:Repeater ID="rptList" runat="server" OnItemCommand="rptList_ItemCommand" OnItemDataBound="rptList_ItemDataBound">
jQTreeTable在Asp.net中的应用                    
<HeaderTemplate>
jQTreeTable在Asp.net中的应用                        
<table id="tablemain" style="width: 100%">
jQTreeTable在Asp.net中的应用                            
<thead>
jQTreeTable在Asp.net中的应用                                
<tr class="PageGridHeader" >
jQTreeTable在Asp.net中的应用                                    
<th style="width:220px">
jQTreeTable在Asp.net中的应用                                        栏目名称
</th>
jQTreeTable在Asp.net中的应用                                    
<th>
jQTreeTable在Asp.net中的应用                                        栏目路径
</th>
jQTreeTable在Asp.net中的应用                                    
jQTreeTable在Asp.net中的应用                                    
<th style="width:150px">
jQTreeTable在Asp.net中的应用                                        链接
</th>
jQTreeTable在Asp.net中的应用                                    
<th style="width:100px">
jQTreeTable在Asp.net中的应用                                        栏目图片
</th>
jQTreeTable在Asp.net中的应用                                     
<th style="width:40px">
jQTreeTable在Asp.net中的应用                                        排序
</th>
jQTreeTable在Asp.net中的应用                                     
<th style="width:40px">
jQTreeTable在Asp.net中的应用                                        添加
</th>
jQTreeTable在Asp.net中的应用                                     
<th style="width:40px">
jQTreeTable在Asp.net中的应用                                        移动
</th>
jQTreeTable在Asp.net中的应用                                    
<th style="width:40px">
jQTreeTable在Asp.net中的应用                                        编辑
</th>
jQTreeTable在Asp.net中的应用                                    
<th style="width:40px">
jQTreeTable在Asp.net中的应用                                        删除
</th>
jQTreeTable在Asp.net中的应用                                
</tr>
jQTreeTable在Asp.net中的应用                            
</thead>
jQTreeTable在Asp.net中的应用                            
<tbody id="treetable">
jQTreeTable在Asp.net中的应用                    
</HeaderTemplate>
jQTreeTable在Asp.net中的应用                    
<ItemTemplate>
jQTreeTable在Asp.net中的应用                       
<tr style="background-color: #EFF3FB; height: 22px;">
jQTreeTable在Asp.net中的应用                            
<td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                
<%jQTreeTable在Asp.net中的应用#Eval("Name"%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                
<%jQTreeTable在Asp.net中的应用#Eval("DisplayName"%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                           
jQTreeTable在Asp.net中的应用                            
<td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                
<%jQTreeTable在Asp.net中的应用#Eval("Url")%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td align="center">
jQTreeTable在Asp.net中的应用                                
<asp:Image ID="img" Height="22px" CssClass="CatalogImg" Width="80px" runat="server" ImageUrl='<%#String.Format("../{0}",Eval("ImageUrl"))%>'
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                    Visible='
<%jQTreeTable在Asp.net中的应用#GetVisible(Eval("ImageUrl")) %>'></asp:Image>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                            
<td align="center"> <%jQTreeTable在Asp.net中的应用#Eval("OrderId")%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td align="center">
jQTreeTable在Asp.net中的应用                                 
<href="CatalogAddEdit.aspx?NodeCode=<%#Eval("NodeCode") %>"><img alt="添加" src="images/Action/add.gif" style="border:0px" /></a>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td align="center">
jQTreeTable在Asp.net中的应用                                 
<href="CatalogMove.aspx?ID=<%#Eval("ID") %>"><img alt="移动" src="images/Action/move.gif" style="border:0px" /></a>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                           
<td  align="center"><href="CatalogAddEdit.aspx?ID=<%#Eval("ID") %>"><img alt="编辑" src="images/Action/edit.gif" style="border:0px" /></a>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td  align="center">
jQTreeTable在Asp.net中的应用                                 
<asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('确定要删除该记录吗?');" CommandName="Delete" CommandArgument='<%#Eval("Id")%>' runat="server"><img alt="删除" src="images/Action/delete.gif" style="border:0px" /></asp:LinkButton>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                        
</tr>
jQTreeTable在Asp.net中的应用                    
</ItemTemplate>
jQTreeTable在Asp.net中的应用                    
<AlternatingItemTemplate> 
jQTreeTable在Asp.net中的应用                     
<tr style="background-color: White; height: 22px;">
jQTreeTable在Asp.net中的应用                       
jQTreeTable在Asp.net中的应用                            
<td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                
<%jQTreeTable在Asp.net中的应用#Eval("Name"%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                
<%jQTreeTable在Asp.net中的应用#Eval("DisplayName"%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
jQTreeTable在Asp.net中的应用                            
<td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                
<%jQTreeTable在Asp.net中的应用#Eval("Url")%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td align="center">
jQTreeTable在Asp.net中的应用                                
<asp:Image ID="img" Height="22px" Width="80px" CssClass="CatalogImg" runat="server" ImageUrl='<%#String.Format("../{0}",Eval("ImageUrl"))%>'
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                                    Visible='
<%jQTreeTable在Asp.net中的应用#GetVisible(Eval("ImageUrl")) %>'></asp:Image>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用                            
<td  align="center"><%jQTreeTable在Asp.net中的应用#Eval("OrderId")%>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td align="center">
jQTreeTable在Asp.net中的应用                                 
<href="CatalogAddEdit.aspx?NodeCode=<%#Eval("NodeCode") %>"><img alt="添加" src="images/Action/add.gif" style="border:0px" /></a>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td align="center">
jQTreeTable在Asp.net中的应用                                 
<href="CatalogMove.aspx?ID=<%#Eval("ID") %>"><img alt="移动" src="images/Action/move.gif" style="border:0px" /></a>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td  align="center"><href="CatalogAddEdit.aspx?ID=<%#Eval("ID") %>"><img alt="编辑" src="images/Action/edit.gif" style="border:0px" /></a>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                            
<td  align="center"> 
jQTreeTable在Asp.net中的应用                            
<asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('确定要删除该记录吗?');" CommandName="Delete" CommandArgument='<%#Eval("Id")%>' runat="server"><img alt="删除" src="images/Action/delete.gif" style="border:0px" /></asp:LinkButton>
jQTreeTable在Asp.net中的应用                            
</td>
jQTreeTable在Asp.net中的应用                        
</tr>
jQTreeTable在Asp.net中的应用                    
</AlternatingItemTemplate>
jQTreeTable在Asp.net中的应用                    
<FooterTemplate>
jQTreeTable在Asp.net中的应用                        
</TBODY> </TABLE>
jQTreeTable在Asp.net中的应用                    
</FooterTemplate>
jQTreeTable在Asp.net中的应用                
</asp:Repeater>
jQTreeTable在Asp.net中的应用                
jQTreeTable在Asp.net中的应用            
</div>
jQTreeTable在Asp.net中的应用        
</div><div id="large" style="position: absolute"></div>
jQTreeTable在Asp.net中的应用    
</form>
jQTreeTable在Asp.net中的应用
</body>
jQTreeTable在Asp.net中的应用
</html>
jQTreeTable在Asp.net中的应用

 

在上面的代码中有两个重要的步骤:1、对数据进行再排序,使其符合显示格式要求。2、生成JQTreeTable所要的参数

三、来看一下,运行后的重要页面代码部分

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用Code
<script type="text/javascript">
$(
function(){
    
//[]中是通过后台代码生成的参数
    var map = [0,1,2,2,2,2,2,1,8,8,8,8,8,8,8,8,16,16,8,8,8,8,8,8,24,25,25,24,28,28,8,8,1,33,33,33,1,37,38,37,37,1,42,42,1,45,45,45,1,49,49,49,49,49,1];
    
var options = {openImg: "images/TreeTable/tv-collapsable.gif", shutImg: "images/TreeTable/tv-expandable.gif", leafImg: "images/TreeTable/tv-item.gif", lastOpenImg: "images/TreeTable/tv-collapsable-last.gif", lastShutImg: "images/TreeTable/tv-expandable-last.gif", lastLeafImg: "images/TreeTable/tv-item-last.gif", vertLineImg: "images/TreeTable/vertline.gif", blankImg: "images/TreeTable/blank.gif", collapse: false, column: 0, striped: false, highlight: true, onselect: function(target){}}; 
   
if(map!=null&&map.length>0)
    {
      $(
"#treetable").jqTreeTable(map, options);
    }
});
</script>

 

四、对上述的脚本进一步解释:

 

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用Code
 var map = [0,1,2,2,2,2,2,1,8,8,8,8,8,8,8,8,16,16,8,8,8,8,8,8,24,25,25,24,28,28,8,8,1,33,33,33,1,37,38,37,37,1,42,42,1,45,45,45,1,49,49,49,49,49,1];

 

这段代码是对要生成的JQTreeTable中行的上下级关系的声明。通过参数map,生成我们要的树形结构。如在刚开始的效果图中,第一行“首页”是

一个根节点,那么第一个数字就是0(行)。第二行“大榭概况”是第一行“首页”的子节点,那么第二个数就是1(行)。依次类推。

 

jQTreeTable在Asp.net中的应用jQTreeTable在Asp.net中的应用Code
var options = {openImg: "images/TreeTable/tv-collapsable.gif", shutImg: "images/TreeTable/tv-expandable.gif", leafImg: "images/TreeTable/tv-item.gif", lastOpenImg: "images/TreeTable/tv-collapsable-last.gif", lastShutImg: "images/TreeTable/tv-expandable-last.gif", lastLeafImg: "images/TreeTable/tv-item-last.gif", vertLineImg: "images/TreeTable/vertline.gif", blankImg: "images/TreeTable/blank.gif", collapse: false, column: 0, striped: false, highlight: true, onselect: function(target){}};

 

这段代码是对要生成的JQTreeTable的参数的声明。

openImg、shutImg、leafImglastOpenImglastShutImglastLeafImgvertLineImgblankImg:是对树形效果的图片参数设置。

collapse:是否节点收缩起来。

column:要生成树形结构显示的是第几列,第一列为0。

striped:奇偶行颜色间隔 。

highlight:鼠标所在行高亮显示。

onselect:单击选中时触发的事件。

五:资源下载:

JQTreeTable:http://www.hanpau.com/jquery/unobtrusivetreetable.php

转载于:https://www.cnblogs.com/yknb/archive/2008/09/14/1290684.html