同学们看了菜单一菜单二有没有什么特殊的感觉。是不是太简单了。
现在我们结合第一篇文章来做个练习。
没事的时候会经常找一些好看的UI,留着自己以后做项目的时候用。 比如easyui、EXT JS啊这些。无意中发现了一个国产的框架。那么今天咱也支持国产一把。
传送门 DWZ框架。感觉还不错 上个图大家看看。


效果还不错吧?呵呵 这节课我们就抄袭了。。
先去官方网站下载源代码。
传送门
解压源码打开index.html 页面。HTML的。果断查看源文件。
这里就不贴代码了。上面是一堆JS根据第一节的“功力”我们可以观察以下代码是菜单
至于它的点击效果 应该就是页面的JS起的作用。
接下来新建工程
把下载的文件夹里的JS文件啊CSS文件啊 都抄到文件夹里包括主题。
看到JS中有这么一段代码
- <script type="text/javascript">
- $(function(){
- DWZ.init("dwz.frag.xml", {
-
- loginUrl:"login.html",
- statusCode:{ok:200, error:300, timeout:301},
- pageInfo:{pageNum:"pageNum", numPerPage:"numPerPage", orderField:"orderField", orderDirection:"orderDirection"},
- debug:false,
- callback:function(){
- initEnv();
- $("#themeList").theme({themeBase:"themes"});
- }
- });
- });
- </script>
init这个单词应该就是初始化的缩写。哈哈。。
那我们就去下载的包里找到
dwz.frag.xml
拷贝到根目录下。
包括图片这些。然后在页面上把响应的JS和CSS文件引用上(注意路径)
接下来直接把源码copy到工程里。把那些没用的去掉。。。you know。
。。(在这里感谢DWZ所有工作人员为我们提供了这么好的框架。支持国产!)
在把我们上面看出来的菜单抽取出来用来后台加载 输出html字符串的形式改写之后差不多就下面这样。。。
只贴了body里面的
接下来我们就要实现绑定的那个方法了。。
数据库跟第一篇的数据库一样。
-
-
-
- protected string GetLeftMenu()
- {
- StringBuilder LeftList = new StringBuilder();
- try
- {
-
- DataTable Dt_TotleMenu = SqlHelper.ReturnDataTable("select * from Ziye_Menu", CommandType.Text);
-
- DataRow[] drMenu = Dt_TotleMenu.Select("Menu_Fid=0 and Menu_able=1");
-
- DataTable LeftMenuTable = new DataTable();
-
- LeftMenuTable = drMenu[0].Table.Clone();
-
- foreach (DataRow dr in drMenu)
- {
- LeftMenuTable.ImportRow(dr);
- }
-
- if (LeftMenuTable.Rows.Count != 0)
- {
-
- for (int i = 0; i < LeftMenuTable.Rows.Count; i++)
- {
- LeftList.Append("<div class=/"accordionHeader/">");
- LeftList.Append("<h2><span>Folder</span>" + LeftMenuTable.Rows[i]["Menu_Name"].ToString() + "</h2>");
- LeftList.Append("</div>");
- LeftList.Append("<div class=/"accordionContent/" style=/"display:block;/">");
-
- LeftList.Append("<ul class=/"tree treeFolder/">");
-
-
- DataRow[] drSencondMenu = Dt_TotleMenu.Select("Menu_Fid='" + LeftMenuTable.Rows[i]["Menu_ID"] + "' and Menu_able=1");
- DataTable SecondTable = new DataTable();
- SecondTable = drSencondMenu[0].Table.Clone();
- foreach (DataRow dr in drSencondMenu)
- {
- SecondTable.ImportRow(dr);
- }
-
-
- if (SecondTable.Rows.Count != 0)
- {
-
- for (int j = 0; j < SecondTable.Rows.Count; j++)
- {
- LeftList.Append("<li><a href=/"" + SecondTable.Rows[j]["Menu_Url"] + "/" target=/"navTab/" rel=/"" + SecondTable.Rows[j]["Menu_Rel"] + "/">" + SecondTable.Rows[j]["Menu_Name"] + "</a></li>");
- }
- }
-
- LeftList.Append("</ul>");
- LeftList.Append("</div>");
- }
-
- }
- return LeftList.ToString();
-
- }
- catch (Exception err)
- {
- return "没菜单";
- }
- }
这个代码应该比第一篇的简单一些。同学们也可以改成递归的形式。
其实原理跟第一篇的差不多。
OK F5。

最后的效果了。
其实这篇文章上周写的好详细。但是一不小心浏览器死了。
博客园没有自动保存功能。只能前功尽弃了。人还是有惰性。主要是感冒了。哎,明天还继续上班。上班悲剧啊!给不上力啊。
下次有机会在给大家介绍一种新型的菜单。这里的技术都是比较过时的了。大家可以用跟得上步伐的代码改造一下。
到这里菜单已经完成了,下次得去坛子抓一抓问菜单的。
洗洗睡了。
忘记贴源码了。
源码请点击
洗洗睡了。