宝哥软件园

asp.net菜单控件SQLServer实现动态多级菜单

编辑:宝哥软件园 来源:互联网 时间:2021-10-12

首先是数据表的设计

其中treeId指的是该菜单项的父身份证,如果treeId为0.表示该菜单项为根菜单项,否则表示他为某菜单项的子菜单,比如编号为2的项,他的父节点是1.则他是张三的子菜单,而张三是根菜单,位置只用于根菜单项,用于控制显示的顺序。往网页里拖入一个菜单控件,然后添加代码复制代码代码如下:使用系统;使用系统。数据;使用系统。配置;使用系统网络.使用系统。网络安全;使用系统网络。用户界面使用系统。网络控件;使用系统。网页组件;使用系统网络。UI。HtmlControls使用系统数据。SqlClient使用系统。数据。提供数据库;公共部分类_默认:系统网络。UI。第{ public int treeID页受保护的无效页面_加载(对象发送方,事件参数e){ SqlConnection CN=new SqlConnection('。服务器=.可信_连接=SSPI;database=MENUDB ');//MENUDB是数据库名//设定数据库操作命令CN .open();SqlCommand Scmd=new SqlCommand('从TB_MENU中选择*其中treeId=0按位置排序,CN);//选出根菜单SqlDataReader odr=Scmd .ExecuteReader();而(网上解决.Read()) //循环读取{ MenuItem MenuNode=new MenuItem();menuNode .文本=ODR[名字].ToString();menuNode .Value=odr['id'].ToString();menuNode .Enabled=truemenuNode .navigatourl=ODR[' page '].ToString();菜单1。项目。添加(菜单代码);//添加到根菜单treeID=转换.至t16(ODR[' id '].ToString());addchildmenu(menuNode);} //关闭数据库连接Scmd .连接。关闭();}受保护的void addchildmenu(MenuItem pnode)//添加子菜单{ SqlConnection CN=new SqlConnection(' server=).可信_连接=SSPI;database=MENUDB ');//设定数据库操作命令CN .open();SqlCommand Scmd1=新的SqlCommand('从TB_MENU中选择*其中treeID=' treeID ',CN);SqlDataReader odr=Scmd1 .ExecuteReader();而(网上解决.read()){ MenuItem menuNode=new MenuItem();menuNode .文本=ODR[名字].ToString();menuNode .Value=odr['id'].ToString();menuNode .Enabled=truemenuNode .navigatourl=ODR[' page '].ToString();pnode .添加(菜单代码);//为当前菜单项添加子菜单treeID=转换.至t16(ODR[' id '].ToString());addchildmenu(menuNode);//循环添加子菜单} //关闭数据库连接Scmd1 .连接。关闭();} } 最终效果如下图

更多资讯
游戏推荐
更多+