136 lines
4.4 KiB
C#
136 lines
4.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Data;
|
|
using System.Data.OleDb;
|
|
|
|
public partial class admin_menu : MyWeb.web_uc, MyWeb.config.IMenu
|
|
{
|
|
|
|
string PageUrl = ""; //目前後台的路徑
|
|
string Power = ""; //帳號權限
|
|
bool isDesigner = false;
|
|
List<string> nItem = new List<string>();
|
|
int setNav = 0;
|
|
DataTable menuDt = new DataTable();
|
|
|
|
public void Data(DataTable dt)
|
|
{
|
|
menuDt = dt;
|
|
}
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
MyWeb.admin admin = new MyWeb.admin();
|
|
if (admin.isLoign() && HttpContext.Current.Request.RawUrl.ToLower().IndexOf("admin/index.aspx") == -1)
|
|
{
|
|
Power = admin.info.power;
|
|
if (Left(Power, 1) == ",") { Power = Right(Power, Power.Length - 1); }
|
|
if (Right(Power, 1) == ",") { Power = Left(Power, Power.Length - 1); }
|
|
|
|
string[] UrlTmp = Request.Url.AbsolutePath.ToLower().Split('/');
|
|
PageUrl = UrlTmp[UrlTmp.Length - 2] + "/" + UrlTmp[UrlTmp.Length - 1];
|
|
|
|
if (admin.info.u_id == "Designer" && admin.info.group == "EZ") { isDesigner = true; }
|
|
|
|
Repeater1.DataSource = MenuRows();
|
|
Repeater1.DataBind();
|
|
|
|
((MyWeb.config.MenuNav)Page.Master.FindControl("nav")).InitNav(nItem);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected DataTable MenuRows(int root=0)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
MyWeb.sql sql = new MyWeb.sql();
|
|
OleDbConnection sqlConn = sql.conn(db, p_name);
|
|
try
|
|
{
|
|
sqlConn.Open();
|
|
OleDbCommand sqlCmd = new OleDbCommand("", sqlConn);
|
|
|
|
if (!isDesigner)
|
|
{
|
|
//非設計師模式檢查權限
|
|
if (!isStrNull(Power))
|
|
{
|
|
sqlCmd.CommandText = "SELECT * FROM [item] Where root=? and num in (" + Power + ") order by range";
|
|
sqlCmd.Parameters.Add(new OleDbParameter("root", root));
|
|
dt = sql.dataTable(sqlCmd);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sqlCmd.CommandText = "SELECT * FROM [item] Where root=? order by range";
|
|
sqlCmd.Parameters.Add(new OleDbParameter("root", root));
|
|
dt = sql.dataTable(sqlCmd);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//Response.Write(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
sqlConn.Close(); sqlConn.Dispose();
|
|
}
|
|
return dt;
|
|
}
|
|
|
|
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
|
{
|
|
DataRowView row = (DataRowView)e.Item.DataItem;
|
|
HiddenField1.Value = ValString(row["num"]);
|
|
rtmp.Value = ValString(row["title"]);
|
|
|
|
if (menuDt.Rows.Count > 0)
|
|
{
|
|
DataTable dt = menuDt.Copy();
|
|
for (int i = dt.Rows.Count-1; i >=0; i--) { if (dt.Rows[i]["root"].ToString() != HiddenField1.Value) { dt.Rows.Remove(dt.Rows[i]); } }
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
Repeater Repeater2 = (Repeater)e.Item.FindControl("Repeater2");
|
|
Repeater2.DataSource = dt;
|
|
Repeater2.DataBind();
|
|
dt.Dispose();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
|
{
|
|
DataRowView row = (DataRowView)e.Item.DataItem;
|
|
|
|
if (ValString(row["url"]).ToLower().IndexOf(PageUrl) > -1)
|
|
{
|
|
setNav++;
|
|
}
|
|
else if (ValString(row["other_url"]).ToLower().IndexOf(PageUrl) > -1)
|
|
{
|
|
setNav++;
|
|
}
|
|
|
|
if (setNav==1)
|
|
{
|
|
setNav++;
|
|
ExpandMenu.Text = "<input type=\"hidden\" id=\"ExpandMenuNum\" value=\"" +HiddenField1.Value + "\" />";
|
|
nItem.Add(rtmp.Value);
|
|
if ((PageUrl.IndexOf("reg.aspx") > -1 || PageUrl.IndexOf("edit.aspx") > -1) && !isStrNull(Request["num"]))
|
|
{
|
|
nItem.Add(ValString(row["title"]).Replace("登錄", "修改").Replace("查詢", "修改").Replace("新增", "修改"));
|
|
}
|
|
else
|
|
{
|
|
nItem.Add(ValString(row["title"]));
|
|
}
|
|
}
|
|
}
|
|
} |