易截截图软件、单文件、免安装、纯绿色、仅160KB

ASP.NET 无限级分类

下图中红色箭头是父类 而且属于根目录级别。
  下面个字段为:ID  父ID  类型名称  深度  排序
  前面3个字段没有什么可解释的,做过无限级分类设计的人都应该清楚
  而第5个字段排序字段ID:43的23排序代表他在这张表排在23的根目录
  而23下面的23,01 说明他是2级分类,排在23下面的第01个,也是支持99级分类。
  而我比较特殊的是多了个深度字段,大家可以看上图数据,
  ID:40的 深度字段也是40,ID:43的 深度字段也是43。
  而他们的下级子类,后面都跟了个 "," 加自己的ID。
  2级子类的深度字段就是(父类ID,自己ID),以此类推,3级分类深度就是(总父类ID,上级父类ID,自己ID),后面不用说了吧。
  看到这里可以在看看上面的图,因为我这个网站程序,只有2级分类而已。
  当然还有中间那个 "," 完全可以自己用自己喜欢的字符 你用 "|" "-" "_"一切字符都可以 但是建议一定要有个字符。
  是因为在程序里好分割开来,而且也很直观,完全可以自己在数据库修改分类数据(因为网站分类一般定了很少改动,第一次完全可以在数据库中加上所有分类)
  谈到这里,在来说说这个字段有什么功能和好处,咋一看这个字段好象很浪费资源,下面听我细细道来:
  在行业门户网站里经常有这样的需求,需要查出某个分类下的所有子分类,如果没有这个字段的话,
  那查出下面的所有字分类,SQL语句就应该要很长了,或者使用递归:根据1级父类ID查出所有2级分类--根据2级分类ID--查出所有3级分类,如果有多级分类的话,这样的递归效率可想而知。
  如果有这个字段(并且数据已对应加好),一切就变得美好多了,让你很轻松就能查出某个分类下所有的子类,下面看个图:
  有没有看明白,只需要带上条件,深度 like ‘40%’ 注意后面的%一定要带 这样才能查出包括自己在内所有的子类,如果不需要带上自己,我只要自己下面的所有子类,很简单,深度 like ‘40,' 只需要把%号换成你自己设定的分割符就行了(只就是我强调一定要分割符的作用)。
  这样是不是很轻松,而且如果后面带上 order by Nt_OrderBy 是不是自动就根据你数据库的排序数据 排好了序呢
  最后总结一下,虽然这个字段好用,但是在添加更新分类数据的同时,也往往加大了添加更新的逻辑程序,但是为了性能,为了SQL语句的方便,这一切是值得的。


相关文档:

ASP.NET AJAX框架编程之JSON序列化剖析

ASP.NET AJAX(最初代码名为“ATLAS”)框架,作为重点支持ASP.NET开发平台的开源Ajax框架在它一出世时就受到广大.NET开发人员的青睐。在本文中,我们将专注于分析ASP.NET AJAX编程中服务器与客户端通信过程中的数据存储形式的问题。具体地说,我们将探讨一个实现序列化与反序列化的服务器端对象—JavaScriptS ......

asp.net页面事件执行过程

最近搞用户验证时,出了个问题,查阅资料解决后,整理了一下。第一篇blog
主要就是父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后问题。
一个页面(子类)的Oninit方法最先启动执行,而后递归执行父类中Oninit方法,父类Oninit方法中添加Init事件,执行Page_Init方法,后再返回父类Oninit方法执行完毕,最后返 ......

Cache Management in ASP.NET

Introduction
Before explaining cache management in ASP.NET, let me clarify that different people use different terms for explaining the same concept i.e. managing data. Some people refer to it as state management and some others refer to it as cache management. I love to use the term cache manageme ......

处理有返回值的和return的asp.net写法

 SqlConnection   conPortal   =   new   SqlConnection(CommunityGlobals.ConnectionString);  
                          SqlCommand   cmdAdd   =   new   SqlCommand(   "Community_Disc ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号