在ASP.NET页面中使用SolpartMenu控件
(二)、动态的加载数据库中的数据来生成菜单
动态的加载数据库中的数据来生成菜单,主要是设计数据库,我们所做的项目中就是使这种方法生成
菜单的,因为关系到权限的问题,
1、设计数据库
如图所示:
其中用到三个表,( xt_menu,xt_jsmx,xt_qxmx ) xt_menu 包含所有的菜单项,xt_jsmx包含所有的用户类型,xt_qxmx包含各个用户类型所能显示的菜单的编号。
2、在后台使用SolpartMenu的BindDataTable方法进行数据的绑定
SqlConnection conn=new SqlConnection (this.strcon );
SqlDataAdapter cmd=new SqlDataAdapter();
SqlCommand selcmd=new SqlCommand ();
cmd.SelectCommand =selcmd;
selcmd.CommandText ="[gj_proc_getmenu]";
selcmd.CommandType = CommandType.StoredProcedure ;
selcmd.Connection = conn;
selcmd.Parameters.Add ("@menu_jsbh","01");
DataSet dst=new DataSet ();
cmd.Fill (dst,"menu");
this.SolpartMenu1.BindDataTable(dst.Tables["menu"],"","id","parent_id","title","url","image","sequence");
此处还有两种方法可以给SolpartMenu生成菜单
一种是利用给SolpartMenu的MenuData属性添加数据。
另一种是利用SolpartMenu的AddMenuItem和AddBreak添加数据。
如:
添加第一个菜单项(简体中文),同时指定其ID值为1
objItem = SolpartMenu1.AddMenuItem("1", "小学数学", "")
‘为“小学数学”项增加一个子菜单,ID值为11,带图标
SolpartMenu1.AddMenuItem(objItem, "11", " 一年级", "", "introduction.gif")
‘增加一条菜单分隔线,根据参数为1决定其位置在“小学数学”的子菜单中
SolpartMenu1.AddBreak("1")