ASP.NET 3.5 C#: Best way to create and display dynamic menu with submenus

前端 未结 3 1539
野的像风
野的像风 2021-01-26 06:08

I usually just create a datatable with one repeater and have all this html in my codebehind. I have not found an easy method for adding a submenu dynamically. Does anyone have

3条回答
  •  有刺的猬
    2021-01-26 06:40

    You can create a xslt File and Get the records from the database dynamically.

    Download the Full Source Code

        
        
         DataBase Driven 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.SqlClient; using System.Xml; using System.Data; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataSet ds = new DataSet(); XmlDataSource xmlDataSource = new XmlDataSource(); xmlDataSource.ID = "xmlDataSource"; xmlDataSource.EnableCaching = false; string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=G:\Admin\WebSite28\App_Data\Database.mdf;Integrated Security=True;User Instance=True"; using (SqlConnection conn = new SqlConnection(connStr)) { string sql = "Select ID, Text,NavigateUrl,ParentID from Menu"; SqlDataAdapter da = new SqlDataAdapter(sql, conn); da.Fill(ds); da.Dispose(); }   ds.DataSetName = "Menus"; ds.Tables[0].TableName = "Menu"; DataRelation relation = new DataRelation("ParentChild", ds.Tables["Menu"].Columns["ID"], ds.Tables["Menu"].Columns["ParentID"], true); relation.Nested = true; ds.Relations.Add(relation); xmlDataSource.Data = ds.GetXml(); //Reformat the xmldatasource from the dataset to fit menu into xml format xmlDataSource.TransformFile = Server.MapPath("~/TransformXSLT.xsl"); //assigning the path to start read all MenuItem under MenuItems xmlDataSource.XPath = "MenuItems/MenuItem"; //Finally, bind the source to the Menu1 control Menu1.DataSource = xmlDataSource; Menu1.DataBind(); } } }

提交回复
热议问题