如何绑定菜单动态? [英] How to bind menu dynamic?

查看:104
本文介绍了如何绑定菜单动态?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

********菜单********************* ****使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Web;使用System.Web.UI;使用System.Web.UI.WebControls;使用System.Data;使用System.Data.SqlClient;使用System.Configuration; namespace DynamicMenu {public partial class Menu:System.Web.UI.Page {private readonly Master objMaster = new Master();私有DataView dv; private MenuItem menuNode; private string connStrg = ConfigurationManager.ConnectionStrings [connString]。ToString(); protected void Page_Load(object sender,EventArgs e){LoadMenu(); } #regionMenu//根据用户权限加载菜单private void LoadMenu(){mnuDynmic.Items.Clear();新的MenuItem(); dv = GetMenu(); dv.RowFilter =parent_id = 0; for(objMaster.I = 0; objMaster.I< = dv.Count - 1; objMaster.I ++){menuNode = new MenuItem {Text = dv [objMaster.I] .Row [menu_name]。ToString(), Value = dv [objMaster.I] .Row [menu_id]。ToString(),NavigateUrl = dv [objMaster.I] .Row [url]。ToString()}; menuNode.Selectable = menuNode.NavigateUrl!=; mnuDynmic.Items.Add(menuNode); Addnode(menuNode,Convert.ToInt32(menuNode.Value)); dv.RowFilter =parent_id = 0; private DataView GetMenu(){DataTable dt = new DataTable(); DataView dv = new DataView(); SqlConnection conn = new SqlConnection(connStrg); conn.Open(); SqlDataAdapter da = new SqlDataAdapter(SELECT * FROM vw_usermenu,conn); da.Fill(DT); DV = dt.AsDataView();返回dv; } private void Addnode(MenuItem pnode,int pid){int j; dv.RowFilter =parent_id =+ pid; for(j = 0; j< = dv.Count - 1; j ++){var node = new MenuItem {Text = dv [j] .Row [menu_name]。ToString(),Value = dv [j]。 Row [menu_id]。ToString(),NavigateUrl = dv [j] .Row [url]。ToString()}; node.Selectable = node.NavigateUrl!=; pnode.ChildItems.Add(节点); Addnode(node,Convert.ToInt32(node.Value)); dv.RowFilter =parent_id =+ pid; #endregion} public class Master {public int I; public int J; public string Url; public string Page; public int ProjectId; *********************用户创建************************* ********使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Web;使用System.Web.UI;使用System.Web.UI.WebControls;使用System.Data;使用System.Data.SqlClient;使用System.Configuration;使用System.Collections; namespace DynamicMenu {public partial class UserCreation:System.Web.UI.Page {private DataView dvRights = new DataView(); private string connStrg = ConfigurationManager.ConnectionStrings [connString]。ToString(); protected void Page_Load(object sender,EventArgs e){if(!IsPostBack){LoadTreeview(); SetTreeViewPriv(); #region函数#region Treeview private void LoadTreeview(){TreeNode objTreenode; tvRights.Nodes.Clear(); dvRights = GetAllMenu(); dvRights.RowFilter =parent_id = 0; for(int i = 0; i< = dvRights.Count - 1; i ++){ob​​jTreenode = new TreeNode(); objTreenode.Text = dvRights [i] .Row [menu_name]。ToString(); objTreenode.Value = dvRights [i] .Row [menu_id]。ToString(); objTreenode.ShowCheckBox = true; tvRights.Nodes.Add(objTreenode); AddNode(objTreenode,Convert.ToInt32(objTreenode.Value)); dvRights.RowFilter =parent_id = 0; } //tvRights.CollapseAll(); } private DataView GetAllMenu(){DataTable dtRght = new DataTable(); DataView dvRght = new DataView(); SqlConnection conn = new SqlConnection(connStrg); conn.Open(); SqlDataAdapter da = new SqlDataAdapter(SELECT menu_id,menu_name,parent_id FROM tfx_menu,conn); da.Fill(dtRght); dvRght = dtRght.AsDataView();返回dvRght; private void AddNode(TreeNode pNode,int pId){TreeNode objNode; dvRights.RowFilter =parent_id =+ pId; for(int k = 0; k< = dvRights.Count - 1; k ++){ob​​jNode = new TreeNode(); objNode.Text = dvRights [k] .Row [menu_name]。ToString(); objNode.Value = dvRights [k] .Row [menu_id]。ToString(); objNode.ShowCheckBox = true; pNode.ChildNodes.Add(objNode); AddNode(objNode,Convert.ToInt32(objNode.Value)); dvRights.RowFilter =parent_id =+ pId; private void SetTreeViewPriv(){dvRights = GetMenuPrivilege(); dvRights.RowFilter =parent_id = 0; if(dvRights.Count!= 0){for(int k = 0; k< tvRights.Nodes.Count; k ++){for(int i = 0; i< = dvRights.Count - 1; i ++){if (Convert.ToInt32(tvRights.Nodes [k] .Value)== Convert.ToInt32(dvRights [i] .Row [menu_id]。ToString())){tvRights.Nodes [k] .Checked = true; setChild(k,Convert.ToInt32(dvRights [i] .Row [menu_id]。ToString()),tvRights.Nodes [k]);打破; } dvRights.RowFilter =parent_id = 0;私有DataView GetMenuPrivilege(){DataTable dtPrvlg = new DataTable(); DataView dvPrvlg = new DataView(); SqlConnection conn = new SqlConnection(connStrg); conn.Open(); SqlDataAdapter da = new SqlDataAdapter(SELECT * FROM vw_usermenu,conn); da.Fill(dtPrvlg); dvPrvlg = dtPrvlg.AsDataView(); return dvPrvlg; private void setChild(int pnode,int pid,TreeNode treeNode){dvRights.RowFilter =parent_id =+ pid; if(dvRights.Count!= 0){for(int k = 0; k< treeNode.ChildNodes.Count; k ++){for(int j = 0; j< = dvRights.Count - 1; j ++){if (Convert.ToInt32(treeNode.ChildNodes [k] .Value)== Convert.ToInt32(dvRights [j] .Row [menu_id]。ToString())){treeNode.ChildNodes [k] .Checked = true; setChild(k,Convert.ToInt32(dvRights [j] .Row [menu_id]。ToString()),treeNode.ChildNodes [k]);打破; } dvRights.RowFilter =parent_id =+ pid; #endregion private string GetCheckedMenus(){int status = 0; string getCheck =; for(int i = 0; i< = tvRights.Nodes.Count - 1; i ++){if(tvRights.Nodes [i] .Checked == true){getCheck = getCheck +,+ tvRights.Nodes [i ]。值; if(tvRights.Nodes [i] .ChildNodes.Count!= 0){for(int j = 0; j< = tvRights.Nodes [i] .ChildNodes.Count - 1; j ++){if(tvRights.Nodes [ i] .ChildNodes [j] .Checked == true){status = 1; getCheck = getCheck +,+ tvRights.Nodes [i] .ChildNodes [j] .Value; if(tvRights.Nodes [i] .ChildNodes [j] .ChildNodes.Count!= 0){for(int x = 0; x< = tvRights.Nodes [i] .ChildNodes [j] .ChildNodes.Count - 1 ; x ++){if(tvRights.Nodes [i] .ChildNodes [j] .ChildNodes [x] .Checked == true){getCheck = getCheck +,+ tvRights.Nodes [i] .ChildNodes [j] .ChildNodes [X]。价值; if(status == 0)getCheck =;}}}}}}}} if(getCheck!=)getCheck = getCheck.Substring(1); return getCheck; } #endregion protected void btnSave_Click(object sender,EventArgs e){GetCheckedMenus(); //类声明public class UserRights {public int user_right_id; public int user_id; public int menu_id; public class User {public int user_id; public string username; public string menuIds; public ArrayList UserRights = new ArrayList(); }

*************************Menu************************* using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace DynamicMenu { public partial class Menu : System.Web.UI.Page { private readonly Master objMaster = new Master(); private DataView dv; private MenuItem menuNode; private string connStrg = ConfigurationManager.ConnectionStrings["connString"].ToString(); protected void Page_Load(object sender, EventArgs e) { LoadMenu(); } #region "Menu" //load the menu according to user rights private void LoadMenu() { mnuDynmic.Items.Clear(); new MenuItem(); dv = GetMenu(); dv.RowFilter = "parent_id=0"; for (objMaster.I = 0; objMaster.I <= dv.Count - 1; objMaster.I++) { menuNode = new MenuItem { Text = dv[objMaster.I].Row["menu_name"].ToString(), Value = dv[objMaster.I].Row["menu_id"].ToString(), NavigateUrl = dv[objMaster.I].Row["url"].ToString() }; menuNode.Selectable = menuNode.NavigateUrl != ""; mnuDynmic.Items.Add(menuNode); Addnode(menuNode, Convert.ToInt32(menuNode.Value)); dv.RowFilter = "parent_id=0"; } } private DataView GetMenu() { DataTable dt = new DataTable(); DataView dv = new DataView(); SqlConnection conn = new SqlConnection(connStrg); conn.Open(); SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM vw_usermenu", conn); da.Fill(dt); dv=dt.AsDataView(); return dv; } private void Addnode(MenuItem pnode, int pid) { int j; dv.RowFilter = "parent_id=" + pid; for (j = 0; j <= dv.Count - 1; j++) { var node = new MenuItem { Text = dv[j].Row["menu_name"].ToString(), Value = dv[j].Row["menu_id"].ToString(), NavigateUrl = dv[j].Row["url"].ToString() }; node.Selectable = node.NavigateUrl != ""; pnode.ChildItems.Add(node); Addnode(node, Convert.ToInt32(node.Value)); dv.RowFilter = "parent_id=" + pid; } } #endregion } public class Master { public int I; public int J; public string Url; public string Page; public int ProjectId; } } *********************User Creation********************************* using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Collections; namespace DynamicMenu { public partial class UserCreation : System.Web.UI.Page { private DataView dvRights = new DataView(); private string connStrg = ConfigurationManager.ConnectionStrings["connString"].ToString(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadTreeview(); SetTreeViewPriv(); } } #region Functions #region Treeview private void LoadTreeview() { TreeNode objTreenode; tvRights.Nodes.Clear(); dvRights = GetAllMenu(); dvRights.RowFilter = "parent_id=0"; for (int i = 0; i <= dvRights.Count - 1; i++) { objTreenode = new TreeNode(); objTreenode.Text = dvRights[i].Row["menu_name"].ToString(); objTreenode.Value = dvRights[i].Row["menu_id"].ToString(); objTreenode.ShowCheckBox = true; tvRights.Nodes.Add(objTreenode); AddNode(objTreenode, Convert.ToInt32(objTreenode.Value)); dvRights.RowFilter = "parent_id=0"; } //tvRights.CollapseAll(); } private DataView GetAllMenu() { DataTable dtRght = new DataTable(); DataView dvRght = new DataView(); SqlConnection conn = new SqlConnection(connStrg); conn.Open(); SqlDataAdapter da = new SqlDataAdapter("SELECT menu_id,menu_name,parent_id FROM tfx_menu", conn); da.Fill(dtRght); dvRght = dtRght.AsDataView(); return dvRght; } private void AddNode(TreeNode pNode, int pId) { TreeNode objNode; dvRights.RowFilter = "parent_id=" + pId; for (int k = 0; k <= dvRights.Count - 1; k++) { objNode = new TreeNode(); objNode.Text = dvRights[k].Row["menu_name"].ToString(); objNode.Value = dvRights[k].Row["menu_id"].ToString(); objNode.ShowCheckBox = true; pNode.ChildNodes.Add(objNode); AddNode(objNode, Convert.ToInt32(objNode.Value)); dvRights.RowFilter = "parent_id=" + pId; } } private void SetTreeViewPriv() { dvRights = GetMenuPrivilege(); dvRights.RowFilter = "parent_id=0"; if (dvRights.Count != 0) { for (int k = 0; k < tvRights.Nodes.Count; k++) { for (int i = 0; i <= dvRights.Count - 1; i++) { if (Convert.ToInt32(tvRights.Nodes[k].Value) == Convert.ToInt32(dvRights[i].Row["menu_id"].ToString())) { tvRights.Nodes[k].Checked = true; setChild(k, Convert.ToInt32(dvRights[i].Row["menu_id"].ToString()), tvRights.Nodes[k]); break; } } dvRights.RowFilter = "parent_id=0"; } } } private DataView GetMenuPrivilege() { DataTable dtPrvlg = new DataTable(); DataView dvPrvlg = new DataView(); SqlConnection conn = new SqlConnection(connStrg); conn.Open(); SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM vw_usermenu", conn); da.Fill(dtPrvlg); dvPrvlg = dtPrvlg.AsDataView(); return dvPrvlg; } private void setChild(int pnode, int pid, TreeNode treeNode) { dvRights.RowFilter = "parent_id=" + pid; if (dvRights.Count != 0) { for (int k = 0; k < treeNode.ChildNodes.Count; k++) { for (int j = 0; j <= dvRights.Count - 1; j++) { if (Convert.ToInt32(treeNode.ChildNodes[k].Value) == Convert.ToInt32(dvRights[j].Row["menu_id"].ToString())) { treeNode.ChildNodes[k].Checked = true; setChild(k, Convert.ToInt32(dvRights[j].Row["menu_id"].ToString()), treeNode.ChildNodes[k]); break; } } dvRights.RowFilter = "parent_id=" + pid; } } } #endregion private string GetCheckedMenus() { int status = 0; string getCheck = ""; for (int i = 0; i <= tvRights.Nodes.Count - 1; i++) { if (tvRights.Nodes[i].Checked == true) { getCheck = getCheck + "," + tvRights.Nodes[i].Value; if (tvRights.Nodes[i].ChildNodes.Count != 0) { for (int j = 0; j <= tvRights.Nodes[i].ChildNodes.Count - 1; j++) { if (tvRights.Nodes[i].ChildNodes[j].Checked == true) { status = 1; getCheck = getCheck + "," + tvRights.Nodes[i].ChildNodes[j].Value; if (tvRights.Nodes[i].ChildNodes[j].ChildNodes.Count != 0) { for (int x = 0; x <= tvRights.Nodes[i].ChildNodes[j].ChildNodes.Count - 1; x++) { if (tvRights.Nodes[i].ChildNodes[j].ChildNodes[x].Checked == true) { getCheck = getCheck + "," + tvRights.Nodes[i].ChildNodes[j].ChildNodes[x].Value; } } } } } } } } if (status == 0) getCheck = ""; if (getCheck != "") getCheck = getCheck.Substring(1); return getCheck; } #endregion protected void btnSave_Click(object sender, EventArgs e) { GetCheckedMenus(); } } //Class Declarations public class UserRights { public int user_right_id; public int user_id; public int menu_id; } public class User { public int user_id; public string username; public string menuIds; public ArrayList UserRights = new ArrayList(); } }

推荐答案

这篇关于如何绑定菜单动态?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆