自动生成菜单

 <form id="form1" runat="server">
        <div>
            <asp:Repeater ID="RptMenu" runat="server" OnItemDataBound="RptMenu_ItemDataBound">
                <ItemTemplate>
                    <li>
                        <a href="#" class="dropdown-toggle">
                            <i class="icon-list"></i>
                            <span class="menu-text"><%#Eval("名称") %>  </span>
                            <b class="arrow icon-angle-down"></b>
                        </a>
                        <ul class="submenu">
                            <asp:Repeater ID="RptMenuItem" runat="server">
                                <ItemTemplate>
                                    <li>
                                        <asp:HyperLink ID="HyperLink3" NavigateUrl='<%#Eval("地址") %>' runat="server"><%#Eval("名称") %></asp:HyperLink>
                                    </li>
                                </ItemTemplate>
                            </asp:Repeater>
                        </ul>
                    </li>
                </ItemTemplate>
            </asp:Repeater>
        </div>

    </form>

using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace Demo
{
    public partial class Index : System.Web.UI.Page
    {
        DataTable dt = new DataTable();
        string StrSql;


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                dt = GetMenuFirst();
                if (dt != null)
                {
                    RptMenu.DataSource = dt;
                    RptMenu.DataBind();
                }
            }
        }


        protected void RptMenu_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            Repeater RptMenuItem = (Repeater)e.Item.FindControl("RptMenuItem");
            dt = GetMenuSecond();
            if (dt != null)
            {
                RptMenuItem.DataSource = dt;
                RptMenuItem.DataBind();
            }
        }


        public DataTable GetMenuFirst()
        {
            StrSql = "SELECT DISTINCT U.NAME 名称 FROM XCB_MENU U,XCB_MENUITEM T WHERE U.KEYID=T.MENUID";
            using (OracleConnection connection = new OracleConnection(ConfigurationManager.AppSettings["ConnString"].ToString()))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    OracleDataAdapter command = new OracleDataAdapter(StrSql, connection);
                    command.Fill(ds, "ds");
                }
                catch (OracleException ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    if (connection.State != ConnectionState.Closed)
                    {
                        connection.Close();
                    }
                }
                if (ds.Tables[0].Rows.Count > 0)
                {
                    return ds.Tables[0];
                }
                return null;
            }
        }


        public DataTable GetMenuSecond()
        {
            StrSql = "SELECT DISTINCT T.NAME 名称,T.URL 地址 FROM XCB_MENU U,XCB_MENUITEM T WHERE U.KEYID=T.MENUID AND T.ISLOCKED='N'";
            using (OracleConnection connection = new OracleConnection(ConfigurationManager.AppSettings["ConnString"].ToString()))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    OracleDataAdapter command = new OracleDataAdapter(StrSql, connection);
                    command.Fill(ds, "ds");
                }
                catch (OracleException ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    if (connection.State != ConnectionState.Closed)
                    {
                        connection.Close();
                    }
                }
                if (ds.Tables[0].Rows.Count > 0)
                {
                    return ds.Tables[0];
                }
                return null;
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值