日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(无限级、递归)DropDownList显示树形分类

發布時間:2024/4/11 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (无限级、递归)DropDownList显示树形分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單無限級表結構:id,name,pid。

本篇將展示如何在DropDownList控件顯示一個漂亮的樹結構。

1.以下我們建立無限級樹的表結構

--星辰變的修真等級表
CREATE?TABLE XianMO
(
XianMoID
INT?NOT?NULL ,
XianMoLevel
VARCHAR(50) NOT?NULL?DEFAULT(''),
XianMoParentID
INT?NOT?NULL?DEFAULT(0)
)
GO
--索引
CREATE?NONCLUSTERED?INDEX IX_XianMo ON XianMo(XianMoID)
GO

?

2.有了表結構,我們將添加一些數據。^_^

INSERT?INTO XianMo(XianMoID,XianMoLevel,XianMoParentID) SELECT?1,'凡人',0
UNION?ALL?SELECT?2,'修真者',0
UNION?ALL?SELECT?3,'后天境界',2
UNION?ALL?SELECT?4,'先天境界(四九小天劫)',2
UNION?ALL?SELECT?5,'金丹期',2
UNION?ALL?SELECT?6,'元嬰期(六九大天劫)',2
UNION?ALL?SELECT?7,'洞虛期',2
UNION?ALL?SELECT?8,'空冥期',2
UNION?ALL?SELECT?9,'渡劫期(九九重劫)',2
UNION?ALL?SELECT?10,'大乘期',2
UNION?ALL?SELECT?11,'仙人',0
UNION?ALL?SELECT?12,'散仙',11
UNION?ALL?SELECT?13,'天仙',11
UNION?ALL?SELECT?14,'金仙',11
UNION?ALL?SELECT?15,'玄仙',11
UNION?ALL?SELECT?16,'仙帝',11
UNION?ALL?SELECT?17,'神人',0
UNION?ALL?SELECT?18,'下級神人',17
UNION?ALL?SELECT?19,'中級神人',17
UNION?ALL?SELECT?20,'上級神人',17
UNION?ALL?SELECT?21,'天神',0
UNION?ALL?SELECT?22,'下部天神',21
UNION?ALL?SELECT?23,'中部天神',21
UNION?ALL?SELECT?24,'上部天神',21
UNION?ALL?SELECT?25,'神王',0
UNION?ALL?SELECT?26,'天尊',0
UNION?ALL?SELECT?27,'鴻蒙',0
GO

?

3.創建一個存儲過程,我們在這里就已經把樹結構完整的展示出來了。

-- =============================================
--
Author: Star Studio
--
Create date: 2010-09-10
--
Description: Tree In DropDownList
--
=============================================
ALTER?PROCEDURE[dbo].[GetTree]
@tableName?VARCHAR(100),--表名
@idName?VARCHAR(100),--id字段名
@className?VARCHAR(100),--class字段名
@pidName?VARCHAR(100),--父id字段名
@pidValue?INT,--指定此次構造樹的根節點
@idExcepted?INT--此次構造的樹,將排除顯示的節點及其子節點。這在修改節點的父關系時很有用。你不可以指定某節點的老爸是自己或自己的兒子吧。所以這時就要屏蔽掉自己及子節點
AS
BEGIN
SET NOCOUNT ON;
DECLARE?@Level?INT
DECLARE?@strTree?VARCHAR(8000)
DECLARE?@t?TABLE(id INT,class VARCHAR(100), pid INT)
DECLARE?@ttemp?TABLE(id INT,class VARCHAR(100),pid INT,lev INT,codeid VARCHAR(8000))

SET?@Level=0
SET?@strTree='┊┈┈'

INSERT?INTO?@t?EXEC('SELECT '+@idName+' AS id,'+@className+' AS class,'+@pidName+' AS pid FROM '+@tableName+'')   --排除的節點有可能是根節點
INSERT?INTO?@ttemp?SELECT id,@strTree+class,pid,@level,right(10000+id,4) FROM@tWHERE pid=@pidValueAND id<>@idExcepted
WHILE?@@rowcount>0--一層層遞歸構造排序字段codeid
BEGIN
SET?@strTree=replace(@strTree,'','')
SET?@strTree=@strTree+'┊┈┈'
SET?@level=@level+1

IF(@idExcepted=0)
BEGIN
INSERT?@ttemp?SELECT a.id,@strTree+a.class,a.pid,@level,b.codeid+right(10000+a.id,4) FROM@t a,@ttemp b
WHERE a.pid=b.id AND b.lev=@level-1
END
ELSE
BEGIN        --排除的節點是某個子節點
INSERT?@ttemp?SELECT a.id,@strTree+a.class,a.pid,@level,b.codeid+right(10000+a.id,4) FROM@t a,@ttemp b
WHERE a.pid=b.id AND b.lev=@level-1AND b.id<>@idExcepted
END
END   --只要按codeid排列結果集,就能得到正確完整的樹結構
SELECT a.id,a.pid,b.class,b.lev,b.codeid FROM?@t a,@ttemp b WHERE a.id=b.id ORDERBY b.codeid
END
GO
--事例演示
exec gettree 'XianMo','xianmoid','xianmolevel','xianmoparentid',0,11

?

演示事例一及其結果集:

--不排除任何一個節點
exec gettree 'XianMo','xianmoid','xianmolevel','xianmoparentid',0,0

?

?

演示事例二及其結果集:

--排除仙人節點
exec gettree 'XianMo','xianmoid','xianmolevel','xianmoparentid',0,11

?

看了以上兩圖,你應該知道,該存儲過程的原理是通過遞歸構造一個排序字段codeid,然后根據codeid排序就得到完整的屬性排列了。

?

4.接下來只要把數據放入DropDownList,就能顯示一顆漂亮的樹了。

<!--DropDownListTree.aspx-->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DropDownListTree.aspx.cs" Inherits="_Default"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>DropDownList顯示樹結構</title>
<style type="text/css">
#TreeBlock{width:200px;}
#TreeBlock #ddlXianMoTree{background
-color:#FFAA2B; }
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="TreeBlock">
<asp:DropDownList ID="ddlXianMoTree" runat="server"></asp:DropDownList>
</div>
</form>
</body>
</html>

?

//DropDownListTree.aspx.cs
using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using WnetSoft.Common.DBHelper;

publicpartialclass _Default : System.Web.UI.Page
{
protectedvoid Page_Load(object sender, EventArgs e)
{
SqlParameter[] SqlParamList
={
SqlHelper.MakeInParam(
"@tableName",SqlDbType.VarChar,100,"XianMo"),
SqlHelper.MakeInParam(
"@idName",SqlDbType.VarChar,100,"XianMoID"),
SqlHelper.MakeInParam(
"@className",SqlDbType.VarChar,100,"XianMoLevel"),
SqlHelper.MakeInParam(
"@pidName",SqlDbType.VarChar,100,"XianMoParentID"),
SqlHelper.MakeInParam(
"@pidValue",SqlDbType.Int,10,0),
SqlHelper.MakeInParam(
"@idExcepted",SqlDbType.Int,10,0)
};
ddlXianMoTree.DataSource
= SqlHelper.ExecuteReader(SqlHelper.connString, CommandType.StoredProcedure, "GetTree", SqlParamList);
ddlXianMoTree.DataTextField
="class";
ddlXianMoTree.DataValueField
="id";
ddlXianMoTree.DataBind();
ddlXianMoTree.Items.Insert(
0, new ListItem("--根節點--", "0"));
}
}

?

有點遺憾是,我傳入XianMoID,XianMoLevel字段,返回的結果是id,class字段。

?

以上就是本篇內容。?

?

?

總結

以上是生活随笔為你收集整理的(无限级、递归)DropDownList显示树形分类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲黄色网络 | 免费看片成人 | 国产一区二区视频免费 | 亚洲激情短视频 | 天天干天天天天 | 日本少妇xxxxx | 五月天av网 | jizz一区二区 | 一区二区三区小视频 | 日韩一区二区三区在线视频 | 亚洲AV无码久久精品国产一区 | 一区二区在线观看av | 暖暖视频日本 | 一区二区三区在线免费视频 | 看污网站 | 国产精品第72页 | 精品少妇一区二区三区在线观看 | 国产成人小视频在线观看 | 欧美福利精品 | 插插综合视频 | 日韩午夜三级 | 美国av片| 亚洲国产免费 | 好吊妞无缓冲视频观看 | 日本美女视频 | 国产在线观看免费视频软件 | 干爹你真棒插曲mv在线观看 | 亚洲激情文学 | 怡春院一区二区 | 奇米视频在线观看 | 国产二区视频在线观看 | 一级视频免费观看 | 两根大肉大捧一进一出好爽视频 | 久久久久久国产精品免费 | 欧美亚州国产 | 肉嫁高柳家在线看 | 久久香蕉影院 | 综合av第一页| 在线观看黄色av | 免费成人美女女 | 在线观看国产亚洲 | 少妇又紧又色又爽又刺激视频 | 黄色一二三区 | 色综合久久久久综合体桃花网 | 操你啦影院 | 亚洲AV无码成人精品区东京热 | 色网视频 | 韩国精品久久久 | 风韵多水的老熟妇 | wwwav在线播放 | 又色又爽又高潮免费视频国产 | 少妇aaaaa| 日本免费不卡视频 | а√天堂www在线天堂小说 | 一区免费在线观看 | 国产激情在线播放 | 九色自拍视频 | jizjiz中国少妇高潮水多 | 精品国精品国产自在久不卡 | www在线观看免费视频 | 国产精品日韩精品 | 国产盗摄精品一区二区酒店 | 亚洲在线a | 9l视频自拍蝌蚪9l视频成人 | 美日韩av在线 | 欧美激情一区二区三级高清视频 | 一级黄色免费大片 | 在线看b| 影音先锋波多野结衣 | 免费成人视屏 | www.亚洲一区二区三区 | 午夜精品久久久久久久久久久 | 性爱动漫 | 亚洲精品鲁一鲁一区二区三区 | 精品视频一区在线观看 | 国产在线视频99 | 蜜臀免费av | 91精品国产一区二区三区 | 日本爱爱网址 | 午夜一区二区视频 | 天堂а√在线中文在线鲁大师 | 色欲一区二区三区精品a片 在线观看黄网站 | 操女人免费视频 | 在线观看国产福利 | 免费看女生裸体视频 | 极品销魂美女一区二区三区 | 97人妻一区二区精品免费视频 | 四虎一级片| 国内自拍视频在线观看 | www污网站 | 国产日韩中文 | 枫可怜av| 欧美日韩激情在线一区二区三区 | 亚洲一区二区三区成人 | 99久久免费看精品国产一区 | 久久精久久| www日本高清视频 | 亲嘴扒胸摸屁股免费视频日本网站 | 色悠悠视频 |