如何从数据库创建html格式的子菜单

本文关键字:格式 菜单 html 创建 数据库 | 更新日期: 2023-09-27 18:02:18

<div id="menu">    
        <ul>
            <li><a href="#">HOME</a></li>
            <li><a href="#">ABOUT US</a></li>
        <li><a href="#">PRODUCTS/a>
            <ul>
            <li><a href="#">Product1</a></li>
            <li><a href="#">Product2</a></li>
            <li><a href="#">Product3</a></li>
            </ul>
        </li>               
    </ul>       
</div>

这是菜单代码,菜单项是静态的,我想从数据库

如何从数据库创建html格式的子菜单

动态显示product1, product2, product3

我认为最简单的方法是使用中继器控制从服务器端绑定多个<li>标签。

如果你不想返回来刷新菜单项,你也可以使用ajax调用来绑定客户端。

代码:

可能这将帮助您了解从服务器端绑定它的一种方法.....

ASPX

<ul>
            <li><a href="#">HOME</a></li>
            <li><a href="#">ABOUT US</a></li>
            <ul>
                <asp:Repeater ID="_rptSubMenu" runat="server">
                    <ItemTemplate>
                        <li><a href="#"><%Eval(ProductId) %> </a>
                        </li>
                    </ItemTemplate>
                </asp:Repeater>

            </ul>
        </ul>
CS

public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            bindMenu();
        }
        public void bindMenu()
        {
            //ADO Code to get menu Items from Database
            //You can load it directly form DataTable or you can create a LIST with Menu Entity as i have

            string connectionstring = "";
            List<MenuItem> lstMenu = new List<MenuItem>();
            SqlConnection con = new SqlConnection(connectionstring);
            SqlCommand cmd = new SqlCommand("SELECT Id,MenuName FROM TM_Menu", con);
            SqlDataReader dr;
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                lstMenu.Add(new MenuItem { ProductID = dr["Id"].ToString(), Name = dr["Name"].ToString() });
            }           
            _rptSubMenu.DataSource = lstMenu;
            _rptSubMenu.DataBind();
        }
    }
    public class MenuItem
    {
        public string ProductID { get; set; }
        public string Name { get; set; }
    }

试试这样做…我的数据库是ms SQL所以我们可能是不同的代码检索数据库上的数据

<div id="menu">    
    <ul>
        <li><a href="#">HOME</a></li>
        <li><a href="#">ABOUT US</a></li>
    <li><a href="#">PRODUCTS/a>
        <ul>
        <li><a href="#">Product1</a></li>
        <li><a href="#">Product2</a></li>
        <li><a href="#">Product3</a></li>
        <?php
            $sqli = "select item  from Rroducts ";
                $stmt = sqlsrv_query( $conn, $sqli );
                if( $stmt === false) {
                die( print_r( sqlsrv_errors(), true) );
                }
                while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
                     $item= $row[' item'];
                echo "<li><a href='#'>".$item."</a></li>";
                }
                sqlsrv_free_stmt( $stmt2;   
        ?>
        </ul>
    </li>               
</ul>