自动生成菜单

 <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;
            }
        }
    }
}

阅读更多
个人分类: 笔记
上一篇计算工作日的方法
想对作者说点什么? 我来说一句

菜单自动生成

2008年06月24日 2.51MB 下载

FLASH右击菜单教程

2009年09月26日 194KB 下载

没有更多推荐了,返回首页

关闭
关闭