现在有多个二级分类,比如:

需要实现这样的效果,
第一步:数据库设计:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_StoreDepart](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](50) NOT NULL,
[SupID] [int] NOT NULL,
[OrderID] [int] NOT NULL,
CONSTRAINT [PK_T_StoreDepart] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'类目编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_StoreDepart', @level2type=N'COLUMN',@level2name=N'ID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'类目名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_StoreDepart', @level2type=N'COLUMN',@level2name=N'Title'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'上级类目编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_StoreDepart', @level2type=N'COLUMN',@level2name=N'SupID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'排序编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_StoreDepart', @level2type=N'COLUMN',@level2name=N'OrderID'
GO
/****** Object: StoredProcedure [dbo].[P_StoreDepart_GetAll] Script Date: 03/07/2013 18:37:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[P_StoreDepart_GetAll]
AS
BEGIN
select ID, Title, SupID, OrderID from dbo.T_StoreDepart order by OrderID
END
GO
2、执行存储过程“P_StoreDepart_GetAll”,得到结果:
ID Title SupID OrderID
1 女装 0 1
2 时尚 1 2
3 清纯 1 3
5 职场 1 4
6 品牌正品 1 5
7 夜店性感 1 6
8 牛仔 1 7
9 丝袜 1 8
10 情侣装 1 9
11 妈妈装 1 10
12 羽绒服 1 11
13 毛衣 1 12
14 男装 0 21
15 时尚 14 22
16 休闲 14 23
17 商务 14 24
18 嘻哈 14 25
19 品牌正品 14 26
20 羽绒服 14 27
21 女鞋 0 41
22 淑女 21 42
23 品牌正品 21 43
24 职场 21 44
25 可爱 21 45
26 雪地靴 21 46
27 男鞋 0 61
28 休闲 27 62
29 商务 27 63
30 品牌正品 27 64
31 运动 0 81
32 运动鞋 31 82
33 运动装 31 83
34 器材 31 84
35 球类 31 85
36 手机 0 101
37 hTC 36 102
38 iPhone 36 103
39 三星 36 104
40 诺基亚 36 105
41 摩托罗拉 36 106
42 其他手机 36 107
43 箱包 0 121
44 女包 43 122
45 旅行箱 43 123
46 男包 43 124
47 品牌代购 43 125
48 内衣 0 141
49 熟女 48 142
50 少女 48 143
51 睡衣 48 144
52 男士 48 145
53 品牌正品 48 146
54 美容 0 161
55 护肤 54 162
56 彩妆 54 163
57 香水 54 164
58 美甲 54 165
59 男士 54 166
60 配件 0 181
61 饰品 60 182
62 围巾 60 183
63 手表 60 184
64 太阳镜 60 185
65 zippo 60 186
66 其他 60 187
67 母婴 0 201
68 童装 67 202
69 奶粉 67 203
70 孕妇装 67 204
71 婴儿用品 67 205
72 童鞋 67 206
73 亲子装 67 207
74 玩具 67 208
75 数码 0 221
76 相机 75 222
77 笔记本 75 223
78 数码配件 75 224
79 MP4 MP3 75 225
80 食品 0 241
81 巧克力 80 242
82 坚果干货 80 243
83 糖果 80 244
84 茶叶 80 245
85 肉类零食 80 246
86 营养补品 80 247
87 居家 0 261
88 家纺床品 87 262
89 日用 87 263
90 汽车用品 87 264
91 家具 87 265
92 厨房用品 87 266
3、开始写实体类、数据库操作类等等。
4、最重要的实现算法
1 private string GetCateItem() 2 { 3 StringBuilder cates = new StringBuilder(); 4 try 5 { 6 List<StoreDepart> list = StoreDepartDALProp.GetAll(); 7 StringBuilder data = new StringBuilder(); 8 data.Append("<ul class=\"sidebar area\" data-area=\"sidebar\">"); 9 if (list != null && list.Count > 0) 10 for (int i = 0; i < list.Count; i++) 11 { 12 if (list[i].SupID == 0) 13 { 14 data.Append("<li><h3><a href=\"#\">").Append(list[i].Title).Append("</a></h3><div>"); 15 } 16 else 17 { 18 data.Append("<a href=\"#\">").Append(list[i].Title).Append("</a>"); 19 } 20 if (i + 1 < list.Count) 21 { 22 if (list[i + 1].SupID == 0) 23 { 24 data.Append("</div></li>"); 25 } 26 } 27 if (i + 1 == list.Count) 28 { 29 data.Append("</div></li>"); 30 } 31 } 32 data.Append("<ul>"); 33 string te = data.ToString(); 34 int start = te.LastIndexOf("<li>"); 35 cates.Append(te.Substring(0, start)).Append("<li class=\"last\">").Append(te.Substring(start + "<li>".Length)); 36 } 37 catch (Exception ex) 38 { 39 FileObj.ErrorLog("异常:" + ex.Message, FolderName, "GetDataItem"); 40 } 41 return cates.ToString(); 42 }
5、最终的效果是正确的,查看源代码:
<ul class="sidebar area" data-area="sidebar"><li><h3><a href="#">女装</a></h3><div><a href="#">时尚</a><a href="#">清纯</a><a href="#">职场</a><a href="#">品牌正品</a><a href="#">夜店性感</a><a href="#">牛仔</a><a href="#">丝袜</a><a href="#">情侣装</a><a href="#">妈妈装</a><a href="#">羽绒服</a><a href="#">毛衣</a></div></li><li><h3><a href="#">男装</a></h3><div><a href="#">时尚</a><a href="#">休闲</a><a href="#">商务</a><a href="#">嘻哈</a><a href="#">品牌正品</a><a href="#">羽绒服</a></div></li><li><h3><a href="#">女鞋</a></h3><div><a href="#">淑女</a><a href="#">品牌正品</a><a href="#">职场</a><a href="#">可爱</a><a href="#">雪地靴</a></div></li><li><h3><a href="#">男鞋</a></h3><div><a href="#">休闲</a><a href="#">商务</a><a href="#">品牌正品</a></div></li><li><h3><a href="#">运动</a></h3><div><a href="#">运动鞋</a><a href="#">运动装</a><a href="#">器材</a><a href="#">球类</a></div></li><li><h3><a href="#">手机</a></h3><div><a href="#">hTC</a><a href="#">iPhone</a><a href="#">三星</a><a href="#">诺基亚</a><a href="#">摩托罗拉</a><a href="#">其他手机</a></div></li><li><h3><a href="#">箱包</a></h3><div><a href="#">女包</a><a href="#">旅行箱</a><a href="#">男包</a><a href="#">品牌代购</a></div></li><li><h3><a href="#">内衣</a></h3><div><a href="#">熟女</a><a href="#">少女</a><a href="#">睡衣</a><a href="#">男士</a><a href="#">品牌正品</a></div></li><li><h3><a href="#">美容</a></h3><div><a href="#">护肤</a><a href="#">彩妆</a><a href="#">香水</a><a href="#">美甲</a><a href="#">男士</a></div></li><li><h3><a href="#">配件</a></h3><div><a href="#">饰品</a><a href="#">围巾</a><a href="#">手表</a><a href="#">太阳镜</a><a href="#">zippo</a><a href="#">其他</a></div></li><li><h3><a href="#">母婴</a></h3><div><a href="#">童装</a><a href="#">奶粉</a><a href="#">孕妇装</a><a href="#">婴儿用品</a><a href="#">童鞋</a><a href="#">亲子装</a><a href="#">玩具</a></div></li><li><h3><a href="#">数码</a></h3><div><a href="#">相机</a><a href="#">笔记本</a><a href="#">数码配件</a><a href="#">MP4 MP3</a></div></li><li><h3><a href="#">食品</a></h3><div><a href="#">巧克力</a><a href="#">坚果干货</a><a href="#">糖果</a><a href="#">茶叶</a><a href="#">肉类零食</a><a href="#">营养补品</a></div></li><li class="last"><h3><a href="#">居家</a></h3><div><a href="#">家纺床品</a><a href="#">日用</a><a href="#">汽车用品</a><a href="#">家具</a><a href="#">厨房用品</a></div></li><ul>
完成。
浙公网安备 33010602011771号