从数据库读出数据动态生成菜单栏
2012-10-20 16:12
405 查看
注:这个是当初水平有限比较初级的,,后来后来就有相对高级点的参考/article/7983348.html
DBUnitly层:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Data;
namespaceDBUnitly
{
publicclassDBHelp
{
publicstaticstring_connectionString=ConfigurationManager.AppSettings["connectionString"];//连接数据库
///<summary>
///执行sql语句返回影响的行数
///</summary>
///<paramname="SQLString"></param>
///<returns></returns>
publicstaticintExecuteSql(stringSQLString)
{
using(SqlConnectionconn=newSqlConnection(_connectionString))
{
using(SqlCommandcmd=newSqlCommand(SQLString,conn))
{
try
{
conn.Open();
introws=cmd.ExecuteNonQuery();
returnrows;
}catch(System.Data.SqlClient.SqlExceptione)
{
conn.Close();
throwe;
}
}
}
}
///<summary>
///执行查询语句,返回DataSet
///</summary>
///<paramname="SQLString">查询语句</param>
///<returns>DataSet</returns>
publicstaticDataSetQuery(stringSQLString)
{
using(SqlConnectionconnection=newSqlConnection(_connectionString))
{
DataSetds=newDataSet();
try
{
connection.Open();
SqlDataAdaptercommand=newSqlDataAdapter(SQLString,connection);
command.Fill(ds,"ds");
}
catch(System.Data.SqlClient.SqlExceptionex)
{
thrownewException(ex.Message);
}
returnds;
}
}
}
}
DAL层:
_menuManager类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceDAL
{
publicclass_menuManager
{
///<summary>
///分页获取数据列表
///</summary>
publicDataSetGetListByPage(stringstrWhere,stringorderby,intstartIndex,intendIndex)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("SELECT*FROM(");
strSql.Append("SELECTROW_NUMBER()OVER(");
if(!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("orderbyT."+orderby);
}
else
{
strSql.Append("orderbyT.menu_iddesc");
}
strSql.Append(")ASRow,T.*from_menuT");
if(!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append("WHERE"+strWhere);
}
strSql.Append(")TT");
strSql.AppendFormat("WHERETT.Rowbetween{0}and{1}",startIndex,endIndex);
returnDBUnitly.DBHelp.Query(strSql.ToString());
}
///<summary>
///获得数据列表
///</summary>
publicDataSetGetList(stringstrWhere)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("selectmenu_id,menu_name");
strSql.Append("FROM_menu");
if(strWhere.Trim()!="")
{
strSql.Append("wheremenu_quanxianin("+strWhere+")");
}
returnDBUnitly.DBHelp.Query(strSql.ToString());
}
}
}
_menuChildrenManager类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceDAL
{
publicclass_menuChildrenManager
{
///<summary>
///获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<returns></returns>
publicDataSetGetAllList(stringstrWhere)
{
StringBuildersb=newStringBuilder();
sb.Append("selectmc_name");
sb.Append("from_menuChildren");
sb.Append("wheremenu_typein");
if(strWhere.Trim()!="")
{
sb.Append("("+Convert.ToInt32(strWhere)+")");
}
returnDBUnitly.DBHelp.Query(sb.ToString());
//selectmc_namefrom_menuChildrenwheremenu_typein(selectmenu_idfrom_menu);
}
}
}
BLL层:
_menuService类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceBLL
{
publicclass_menuService
{
///<summary>
///分页获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<paramname="orderby"></param>
///<paramname="startIndex"></param>
///<paramname="endIndex"></param>
///<returns></returns>
publicDataSetGetListByPage(stringstrWhere,stringorderby,intstartIndex,intendIndex)
{
returnnewDAL._menuManager().GetListByPage(strWhere,orderby,startIndex,endIndex);
}
///<summary>
///获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<returns></returns>
publicDataSetGetList(stringstrWhere)
{
returnnewDAL._menuManager().GetList(strWhere);
}
}
}
_menuChildrenService
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceBLL
{
publicclass_menuChildrenService
{
///<summary>
///获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<returns></returns>
publicDataSetGetAllList(stringstrWhere)
{
returnnewDAL._menuChildrenManager().GetAllList(strWhere);
}
}
}
Test层:
MenuTest.aspx
<body>
<formid="form1"runat="server">
<div>
<asp:MenuID="Menu1"runat="server"Orientation="Horizontal"
DynamicEnableDefaultPopOutImage="False"DynamicVerticalOffset="10"
Height="24px"Width="126px">
<StaticSelectedStyleHorizontalPadding="0px"/>
<StaticMenuItemStyleHorizontalPadding="5px"ForeColor="#3C3C3C"/>
<DynamicMenuStyleHorizontalPadding="0px"/>
<DynamicMenuItemStyleHorizontalPadding="0px"ItemSpacing="3px"ForeColor="#D96C01"/>
<StaticMenuStyleHorizontalPadding="0px"/>
<DynamicHoverStyleForeColor="#3D68A3"/>
<StaticHoverStyleForeColor="#D96C01"/>
</asp:Menu>
</div>
</form>
</body>
.cs文件
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Data;
publicpartialclassMenuTest:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
DataTabledt=newBLL._menuService().GetList("0").Tables[0];
for(inti=0;i<dt.Rows.Count;i++)
{
MenuItemmenuNode=newMenuItem();
menuNode.Text=dt.Rows[i]["menu_name"].ToString();//一级菜单栏
menuNode.Value=dt.Rows[i]["menu_id"].ToString();
DataTabledt1=newBLL._menuChildrenService().GetAllList(menuNode.Value).Tables[0];
for(intj=0;j<dt1.Rows.Count;j++)
{
MenuItemmenuChildNode=newMenuItem();
menuChildNode.Text=dt1.Rows[j]["mc_name"].ToString();//二级菜单
menuChildNode.Enabled=true;
menuNode.ChildItems.Add(menuChildNode);//将子菜单放在父菜单下
}
menuNode.Enabled=true;
Menu1.Items.Add(menuNode);
}
}
}
}
有源码:
相关文章推荐
- easyUI( accordion +tree)动态生成导航菜单(数据库读取数据)
- QX项目实战-3.读取数据、数据写入数据库、读出数据生成新文件
- hibernate通过反射,动态生成insert语句原理 并向数据库添加数据
- 下拉菜单从数据库读取数据动态生成
- 动态SQL语句根据数据库列来查询数据,动态的生成列名称
- flex从数据库取数据动态生成tree
- 数据库数据导入导出系列之五 C#实现动态生成Word(转)
- Jquery 动态生成表单 并将表单数据 批量通过Ajax插入到数据库
- 从数据库读取数据动态生成树形菜单示例
- Jquery 动态生成表单 并将表单数据 批量通过Ajax插入到数据库
- 从数据库从读取数据动态生成JS表格脚本
- SolpartMenu的使用:(二)、在ASP.NET页面中使用SolpartMenu控件之动态的加载数据库中的数据来生成菜单
- Jquery 动态生成表单 并将表单数据 批量通过Ajax插入到数据库
- 基于Visual Studio2010讲解LINQ读出数据库数据生成XML
- 动态生成页面(从数据库中动态取出数据信息生成页面)
- 从数据库查询多表数据动态生成下拉树
- c#从数据库读取数据动态生成树形菜单
- SolpartMenu的使用:(二)、在ASP.NET页面中使用SolpartMenu控件之动态的加载数据库中的数据来生成菜单
- 用C#实现动态生成Word文档,在Word文档中插入表格,并将读出的数据填入到表格中
- extjs4 数据库读取数据动态生成表单