http://expert.csdn.net/Expert/topic/1631/1631954.xml?temp=7.778567E-02
http://expert.csdn.net/Expert/topic/1645/1645231.xml?temp=.9744532
http://expert.csdn.net/Expert/topic/1654/1654834.xml?temp=.8108179
http://expert.csdn.net/Expert/topic/1645/1645231.xml?temp=.9744532
http://expert.csdn.net/Expert/topic/1654/1654834.xml?temp=.8108179
<%@ Page language="c#" Codebehind="Setmenu.aspx.cs" AutoEventWireup="false" Inherits="customize.SMenu" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>菜单设置</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="../../image/model.css" type="text/css" rel="stylesheet">
<script language="javascript">
function Ex(tree)
{
var i;
var index;
index=tree.clickedNodeIndex;
if(index.indexOf(".") == -1)
{
ChildNode=tree.getChildren();
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
cNode.setAttribute("Expanded","False");
}
}
if(tree.getTreeNode(index).getAttribute("Expanded") == false)
{
tree.getTreeNode(index).setAttribute("Expanded","True");
}
else
{
tree.getTreeNode(index).setAttribute("Expanded","False");
}
}
function initchecknode()
{
var node=Menu.getTreeNode("1");
node.setAttribute("Checked","true");
setcheck(node,"true");
}function tree_oncheck(tree)
{
var node=tree.getTreeNode(tree.clickedNodeIndex);
var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked");
setcheck(node,Pchecked);
}function setcheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(parseInt(ChildNode.length)==0)
return;
else
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode,Pc);
cNode.setAttribute("Checked",Pc);
}
}
} </script>
</HEAD>
<body MS_POSITIONING="GridLayout" onload="initchecknode()">
<form id="Setmenu" action="Setmenu.asp.cs" method="post" runat="server">
<TABLE id="Table1" height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
<TR>
<TD style="HEIGHT: 16px" bgColor="#000080"><FONT face="宋体"><B><FONT color="#ffffff" size="4">菜单设置</FONT></B></FONT></TD>
</TR>
<TR>
<TD style="HEIGHT: 18px"><FONT face="宋体"></FONT></TD>
</TR>
<TR>
<TD vAlign="top" rowSpan="3"><FONT face="宋体">
<TABLE height="100%" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<TD vAlign="top">
<asp:Label id="Lbljob" runat="server" CssClass="label"></asp:Label>
<br>
<iewc:treeview id="Menu" runat="server" SelectExpands="True" ></iewc:treeview><BR>
<asp:button id="Btnset" runat="server" Text="设置"></asp:button></TD>
</TR>
</TABLE>
</FONT>
</TD>
</TR>
</TABLE>
</form>
</body>
</HTML>using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
using System.Data.SqlClient;namespace customize
{
/// <summary>
/// Setmenu 的摘要说明。
/// </summary>
public class SMenu : System.Web.UI.Page
{
public ShengChang.sysset sys=new ShengChang.sysset();
protected Microsoft.Web.UI.WebControls.TreeView Menu; DataSet dspage=new DataSet();
DataSet dsjobmenu=new DataSet();
protected System.Web.UI.WebControls.Button Btnset;
int i=0;
protected System.Web.UI.WebControls.Label Lbljob;
int job_id=0; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
dspage=sys.getpagemenu();
ViewState["dspage"]=dspage;
// int job_id=Convert.ToInt16(Request.Form["actor"]);
// string job_name=Convert.ToInt16(Request.Form["actorname"]);
job_id=1;
string job_name="产品经理";
job_name="请选择" + job_name + "可使用的菜单"; Lbljob.Text=job_name;
dsjobmenu=sys.getjobmenu(job_id);
Menu.Attributes.Add("onclick","Ex(this)");
Menu.Attributes.Add("oncheck","tree_oncheck(this)"); InitTree(Menu.Nodes,"0"); } }
private void InitTree(TreeNodeCollection Nds,string father_id)
{
DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=dspage.Tables["page_menu"];
dv.RowFilter="father_id=" + father_id + "" ;
foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
string id=drv["page_menu_id"].ToString();
tmpNd.ID=id;
tmpNd.Text=drv["page_menu_name"].ToString();
tmpNd.Target="main";
tmpNd.CheckBox=true;
tmpNd.NodeData=drv["father_id"].ToString();
DataView dvsub=new DataView();
dvsub.Table=dsjobmenu.Tables["job_menu"];
dvsub.RowFilter="page_menu_id=" + id + "";
if (dvsub.Count!=0)
{
tmpNd.Checked=true;
}
Nds.Add(tmpNd);
intId=drv["father_id"].ToString();
i++;
InitTree(tmpNd.Nodes,tmpNd.ID);
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//加入非法登录用户验证 // if (Session["emp_name"]==null || Session["emp_name"].ToString()=="")
// {
// string strScrip = "<script language='javascript'>" +
// "alert('请正确登录本公司内部管理网络!!!');" +
// "</script>";
// Page.Response.Write (strScrip);
// Response.Write("<script language='JavaScript'>window.opener=null;window.close();</script>");
// }
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Btnset.Click += new System.EventHandler(this.Btnset_Click);
this.ID = "SMenu";
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void maketree(TreeNodeCollection Nds,int serial)
{
int i=0;
foreach(TreeNode tmpNd in Nds)
{
int selected=0;
int id=Convert.ToInt16(tmpNd.ID);
bool flag=tmpNd.Checked;
if (flag)
{
selected=1;
sys.updatemenu(id,serial,selected);
int father_id=Convert.ToInt16(tmpNd.NodeData); while(father_id!=0)
{
sys.updatemenu(father_id,serial,1);
DataView dv=new DataView();
dspage=(DataSet) ViewState["dspage"];
dv.Table=dspage.Tables["page_menu"];
dv.RowFilter="page_menu_id=" + father_id + "" ;
father_id=Convert.ToInt16(dv[0]["father_id"]);
}
} sys.updatemenu(id,serial,selected);
i++;
maketree(tmpNd.Nodes,serial);
}
} private void Btnset_Click(object sender, System.EventArgs e)
{
// int job_id=Convert.ToInt16(Request.Form["actor"]);
job_id=1;
maketree(Menu.Nodes,job_id);
Response.Redirect("Setmenu.aspx"); }
}
}