针对有网友说看不见文章内容, 现提示如下: 点击每一个标题行任一地方都会展开和隐藏此文章内容(不要点击标题). 目前展开隐藏功能只支持IE浏览器,虽然可以改成支持FF浏览器,不过现在一直没时间去弄,等有时间再修改了。 |
blog名称:乱闪Blog 日志总数:267 评论数量:1618 留言数量:-26 访问次数:2673421 建立时间:2005年1月1日 |
|

| |
用ASP+XML实现CSDN的菜单(数据库),可分权限管理
|
只有一个程序文件和一个数据库.文件很少,也很容易查错.但是功能完全实现了!
数据库结构:
Table:Menu ID parentid,int,4 MenuName,Char,20 Link,Char,50
Table:UserLevel ID UserID,int,4 MenuID,int,4
-------------------------------------程序源文件:MenuList.Asp------------------------------
<%'-------------------------------''源创商务策划有限公司-OA系统'模块名称:可权限控制的菜单'-------------------------------'
set conn = Server.CreateObject("ADODB.Connection")conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.mappath("tree.mdb")+";Persist Security Info=False")%>
<HTML><HEAD><TITLE> DSTree </TITLE><style>body,td{font:12px verdana}#treeBox{background-color:#fffffa;}#treeBox .ec{margin:0 5 0 5;}#treeBox .hasItems{font-weight:bold;height:20px;padding:3 6 0 6;margin:2px;cursor:hand;color:#555555;border:1px solid #fffffa;}#treeBox .Items{height:20px;padding:3 6 0 6;margin:1px;cursor:hand;color:#555555;border:1px solid #fffffa;}</style>
<script>//code by star 20003-4-7var HC = "color:#990000;border:1px solid #cccccc";var SC = "background-color:#efefef;border:1px solid #cccccc;color:#000000;";var IO = null;function initTree(){ var rootn = document.all.menuXML.documentElement; var sd = 0; document.onselectstart = function(){return false;} document.all.treeBox.appendChild(createTree(rootn,sd));}function createTree(thisn,sd){ var nodeObj = document.createElement("span"); var upobj = document.createElement("span"); with(upobj){ style.marginLeft = sd*10; className = thisn.hasChildNodes()?"hasItems":"Items"; innerHTML = "<img src=expand.gif class=ec>" + thisn.getAttribute("text") +""; onmousedown = function(){ if(event.button != 1) return; if(this.getAttribute("cn")){ this.setAttribute("open",!this.getAttribute("open")); this.cn.style.display = this.getAttribute("open")?"inline":"none"; this.all.tags("img")[0].src = this.getAttribute("open")?"expand.gif":"contract.gif"; } if(IO){ IO.runtimeStyle.cssText = ""; IO.setAttribute("selected",false); } IO = this; this.setAttribute("selected",true); this.runtimeStyle.cssText = SC; } onmouseover = function(){ if(this.getAttribute("selected"))return; this.runtimeStyle.cssText = HC; } onmouseout = function(){ if(this.getAttribute("selected"))return; this.runtimeStyle.cssText = ""; } oncontextmenu = contextMenuHandle; onclick = clickHandle; }
if(thisn.getAttribute("treeId") != null){ upobj.setAttribute("treeId",thisn.getAttribute("treeId")); } if(thisn.getAttribute("href") != null){ upobj.setAttribute("href",thisn.getAttribute("href")); } if(thisn.getAttribute("target") != null){ upobj.setAttribute("target",thisn.getAttribute("target")); }
nodeObj.appendChild(upobj); nodeObj.insertAdjacentHTML("beforeEnd","<br>")
if(thisn.hasChildNodes()){ var i; var nodes = thisn.childNodes; var cn = document.createElement("span"); upobj.setAttribute("cn",cn); if(thisn.getAttribute("open") != null){ upobj.setAttribute("open",(thisn.getAttribute("open")=="true")); upobj.getAttribute("cn").style.display = upobj.getAttribute("open")?"inline":"none"; if( !upobj.getAttribute("open"))upobj.all.tags("img")[0].src ="contract.gif"; } for(i=0;i<nodes.length;cn.appendChild(createTree(nodes[i++],sd+1))); nodeObj.appendChild(cn); } else{ upobj.all.tags("img")[0].src ="endnode.gif"; } return nodeObj;}window.onload = initTree;</script>
<script>function clickHandle(){if((this.getAttribute("href")!=null)&&(this.getAttribute("href")!="http://")){parent.mainFrame.location.href=this.getAttribute("href");} //在MainFrame窗口打开连接。}
function contextMenuHandle(){ event.returnValue = false; var treeId = this.getAttribute("treeId"); // your code here}</script></HEAD><BODY><xml id=menuXML><?xml version="1.0" encoding="GB2312"?><DSTreeRoot text="系统菜单" open="true" treeId="123">
<%
Set rs = Conn.Execute("SELECT (select count(*) from Menu where Menu.parentid=x.id and Menu.ID in (SELECT UserLevel.menuid FROM UserLevel WHERE UserLevel.userid = 1)) AS children, * FROM Menu AS x WHERE x.id in (SELECT UserLevel.menuid FROM UserLevel WHERE UserLevel.userid = 1)") Do while not rs.eof if rs("ParentID")=0 then Count = Rs ("children") %> <DSTree text="<%=rs("Content")%>" href="<%=rs("Link")%>" open="false" treeId="<%=rs("ID")%>"> <% rs.MoveNext end if for i=1 to Count %> <DSTree text="<%=rs("Content")%>" href="<%=rs("Link")%>" open="false" treeId="<%=rs("ID")%>"> </DSTree> <% Rs.MoveNext Next Response.write("</DSTree>")Loop
rs.closeConn.closeSet rs = NothingSet Conn = Nothing%>
</DSTreeRoot></xml><table style="position:absolute;left:0;top:0;"><tr><td id=treeBox style="width:400px;height:200px;border:1px solid #cccccc;padding:5 3 3 5;" valign=top></td></tr></table></BODY></HTML> |
|
回复:用ASP+XML实现CSDN的菜单(数据库),可分权限管理
|
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎打不开文件'(未知的)'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。 |
电脑与网络 笨笨(游客)发表评论于2010/12/1 3:34:55 |
| |
回复:用ASP+XML实现CSDN的菜单(数据库),可分权限管理
|
电脑与网络 ok(游客)发表评论于2006/4/15 20:11:36 |
| |
» 1 »
|