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