以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML在电子商务与电子政务中的应用 』  (http://bbs.xml.org.cn/list.asp?boardid=36)
----  ASP.NET  XML数据岛  做 权限加载[JS篇]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=36&rootid=&id=7829)


--  作者:cwzb
--  发布时间:5/24/2004 5:31:00 PM

--  ASP.NET  XML数据岛  做 权限加载[JS篇]
数据岛在.net 系统里的一个应用实例(含JS篇跟XSL篇)。
因为要下班了,我只贴了代码在下面。


此主题相关图片如下:
按此在新窗口浏览图片

[此贴子已经被作者于2004-5-26 11:22:10编辑过]

--  作者:cwzb
--  发布时间:5/24/2004 5:32:00 PM

--  
功能模块表文件[.XML]

<?xml version="1.0" encoding="utf-8" ?>
<modules xmlns="http://tempuri.org/ModulesFile.xsd">
 <module mid="01" name="营业查看" path="" remark="" level="0" parentId="0" size="">
  <module mid="0101" name="查看某天营业额" path="/OrdermanSystem/SalesManage/SalesTable/OneTableMain.aspx?a=0"
   remark="" level="1" parentId="01" size="620,200" />
  <module mid="0102" name="查看某段日期营业额" path="/OrdermanSystem/SalesManage/SalesTable/MoreTableMain.aspx?a=0"
   remark="" level="1" parentId="01" size="670,470" />
  <module mid="0103" name="按桌位查看营业情况" path="/OrdermanSystem/SalesManage/SalesTable/MoreTableMain.aspx?a=4"
   remark="" level="1" parentId="01" size="620,470" />
  <module mid="0104" name="查看就餐人数情况" path="/OrdermanSystem/SalesManage/SalesTable/MoreTableMain.aspx?a=5"
   remark="" level="1" parentId="01" size="620,470" />
  <module mid="0105" name="某天桌位消费明细" path="/OrdermanSystem/SalesManage/SalesTable/OneTableList.aspx?a=6"
   remark="" level="1" parentId="01" size="620,470" />
  <module mid="0106" name="某付款方式在某段日期的表现" path="/OrdermanSystem/SalesManage/SalesTable/MoreTableMain.aspx?a=1"
   remark="" level="1" parentId="01" size="720,470" />
  <module mid="0107" name="按菜的类别查看" path="/OrdermanSystem/SalesManage/SalesTable/MoreTableMain.aspx?a=3"
   remark="" level="1" parentId="01" size="620,470" />
  <module mid="0108" name="按菜的总类别查看" path="/OrdermanSystem/SalesManage/SalesTable/MoreTableMain.aspx?a=2"
   remark="" level="1" parentId="01" size="640,320"></module>
  <module mid="0109" name="所有付款方式在某一天的表现" path="/OrdermanSystem/SalesManage/SalesTable/OneTableMain.aspx?a=1"
   remark="" level="1" parentId="01" size="670,270"></module>
 </module>
 <module mid="02" name="营业报表" path="" remark="" level="0" parentId="0" size=" ">
  <module mid="0201" name="单日综合报表" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="02" size=" "></module>
  <module mid="0202" name="单日菜类报表" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="02" size=" "></module>
  <module mid="0203" name="单日菜总类报表" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="02" size=" "></module>
  <module mid="0204" name="单日就餐人数报表" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="02" size=" "></module>
  <module mid="0205" name="单日桌位明细报表" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="02" size=" "></module>
  <module mid="0206" name="单日清费明细报表" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="02" size=" "></module>
 </module>
 <module mid="03" name="营业分析" path="" remark="" level="0" parentId="0" size=" ">
  <module mid="0301" name="单项消费分析" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="03" size=" "></module>
  <module mid="0302" name="单项营业分析" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="03" size=" "></module>
  <module mid="0303" name="阶段营业额分析" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="03" size=" "></module>
  <module mid="0304" name="就餐人数分析" path="/OrdermanSystem/SalesManage/" remark="" level="1"
   parentId="03" size=" "></module>
  <module mid="0305" name="桌位营业分析" path="/OrdermanSystem/" remark="" level="1" parentId="03"
   size=" "></module>
 </module>
 <module mid="04" name="客户管理" path="" remark="" level="0" parentId="0" size=" ">
  <module mid="0403" name="单位业务管理台" path="/OrdermanSystem/ClientManage/ForBusiness/main.htm"
   remark="" level="1" parentId="04" size="670,360">
  </module>
  <module mid="040301" name="查看签单记录" path="/OrdermanSystem/ClientManage/ForBusiness/InspectSignNote.aspx"
    remark="" level="1" parentId="142" size="620,320"></module>
  <module mid="040302" name="查看支票使用记录" path="/OrdermanSystem/ClientManage/ForBusiness/InspectTicketNote.aspx"
   remark="" level="2" parentId="142" size="470,320"></module>
  <module mid="040303" name="新开签单" path="/OrdermanSystem/ClientManage/ForBusiness/AddSignNote.aspx"
   remark="" level="2" parentId="142" size="420,250"></module>
  <module mid="040304" name="单位结算" path="/OrdermanSystem/ClientManage/ForBusiness/InspectNeedPaySign.aspx"
   remark="" level="2" parentId="142" size="620,335"></module>
  <module mid="0404" name="新建协议单位" path="/OrdermanSystem/ClientManage/ForEnterprise/AddEnterprise.aspx"
   remark="" level="1" parentId="04" size="480,360"></module>
  <module mid="0405" name="管理协议单位" path="/OrdermanSystem/ClientManage/ForManage/main.htm"
   remark="" level="1" parentId="04" size="630,380"></module>
  <module mid="0406" name="预定餐位" path="/OrdermanSystem/ClientManage/Prearrange/Main.aspx"
   remark="" level="1" parentId="04" size="860,600"></module>
  <module mid="0407" name="查看预定情况" path="/OrdermanSystem/ClientManage/Prearrange/Manage.aspx"
   remark="" level="1" parentId="04" size="770,335"></module>
 </module>
 <module mid="05" name="员工管理" path="" remark="" level="0" parentId="0" size=" ">
  <module mid="0501" name="建立员工档案" path="/OrdermanSystem/EmployeeManage/ForRecord/AddRecord.aspx"
   remark="" level="1" parentId="05" size="500,405"></module>
  <module mid="0502" name="建立职位" path="/OrdermanSystem/EmployeeManage/ForJob/AddJob.aspx"
   remark="" level="1" parentId="05" size="250,110"></module>
  <module mid="0503" name="建立部门" path="/OrdermanSystem/EmployeeManage/ForDepartption/AddDepartption.aspx"
   remark="" level="1" parentId="05" size="270,110"></module>
  <module mid="0504" name="管理档案" path="/OrdermanSystem/EmployeeManage/ForRecord/main.htm"
   remark="" level="1" parentId="05" size="680,440"></module>
  <module mid="0505" name="管理部门和职位" path="/OrdermanSystem/EmployeeManage/ForDepartption/main.htm"
   remark="" level="1" parentId="05" size="430,250"></module>
 </module>
 <module mid="06" name="菜单管理" path="" remark="" level="0" parentId="0" size=" ">
  <module mid="0601" name="添加菜单" path="/OrdermanSystem/MenuManage/MenuInfo/Append.aspx" remark=""
   level="1" parentId="06" size="435,280"></module>
  <module mid="0602" name="添加菜分类" path="/OrdermanSystem/MenuManage/MenuCategory/Append.aspx"
   remark="" level="1" parentId="06" size="370,250"></module>
  <module mid="0603" name="添加菜总类" path="/OrdermanSystem/MenuManage/CategoryConcourse/Append.aspx"
   remark="" level="1" parentId="06" size="210,145"></module>
  <module mid="0604" name="管理菜单" path="/OrdermanSystem/MenuManage/MenuInfo/main.htm" remark=" "
   level="1" parentId="06" size="625,315"></module>
  <module mid="0605" name="管理菜分类" path="/OrdermanSystem/MenuManage/MenuCategory/main.htm"
   remark=" " level="1" parentId="06" size="485,285"></module>
  <module mid="0606" name="管理菜总类" path="/OrdermanSystem/MenuManage/CategoryConcourse/main.htm"
   remark=" " level="1" parentId="06" size="360,180"></module>
  <module mid="0607" name="添加制作方法" path="/OrdermanSystem/MenuManage/Facture/Addnew.aspx" remark=" "
   level="1" parentId="06" size="330,260"></module>
  <module mid="0608" name="添加口味" path="/OrdermanSystem/MenuManage/Taste/Addnew.aspx" remark=" "
   level="1" parentId="06" size="255,200"></module>
  <module mid="0609" name="管理口味" path="/OrdermanSystem/MenuManage/Taste/manage.htm" remark=" "
   level="1" parentId="06" size="410,225"></module>
  <module mid="0610" name="管理制作方法" path="/OrdermanSystem/MenuManage/Facture/manage.htm" remark=" "
   level="1" parentId="06" size="510,330"></module>
 </module>
 <module mid="07" name="系统管理" path="" remark="" level="0" parentId="0" size=" ">
  <module mid="0701" name="新建用户" path="/OrdermanSystem/SystemManage/SystemUser/NewUser.aspx"
   remark="" level="1" parentId="07" size="410,260"></module>
  <module mid="0702" name="新建餐桌" path="/OrdermanSystem/SystemManage/Table/Append.aspx" remark=""
   level="1" parentId="07" size="435,240"></module>
  <module mid="0703" name="用户管理" path="/OrdermanSystem/SystemManage/SystemUser/main.htm" remark=""
   level="1" parentId="07" size="580,300"></module>
  <module mid="0704" name="餐桌管理" path="/OrdermanSystem/SystemManage/Table/main.htm" remark=""
   level="1" parentId="07" size="590,265"></module>
  <module mid="0705" name="新建包厢" path="/OrdermanSystem/SystemManage/Balcony/NewBalcony.aspx"
   remark="" level="1" parentId="07" size="440,280"></module>
  <module mid="0706" name="包厢管理" path="/OrdermanSystem/SystemManage/Balcony/main.htm" remark=""
   level="1" parentId="07" size="600,305"></module>
  <module mid="0707" name="添加设备" path="/OrdermanSystem/SystemManage/SystemDevice/NewDevice.aspx"
   remark=" " level="1" parentId="07" size="280,200"></module>
  <module mid="0708" name="设备维护" path="/OrdermanSystem/SystemManage/SystemDevice/main.htm"
   remark=" " level="1" parentId="07" size="460,230"></module>
 </module>
 <module mid="08" name="每日报告" path="/OrdermanSystem/_default/DailyReport.aspx" remark=" "
  level="0" parentId="0" size=" "></module>
 <module mid="09" name="参数设置" path="/OrdermanSystem/_default/Preferences.aspx" remark=" "
  level="0" parentId="0" size=" "></module>
</modules>


--  作者:cwzb
--  发布时间:5/24/2004 5:33:00 PM

--  
功能模块表文件[.XSD]

<?xml version="1.0" ?>
<xs:schema id="modules" targetNamespace="http://tempuri.org/ModulesFile.xsd" xmlns:mstns="http://tempuri.org/ModulesFile.xsd"
 xmlns="http://tempuri.org/ModulesFile.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
 <xs:element name="module">
  <xs:complexType>
   <xs:sequence>
    <xs:element ref="module" minOccurs="0" maxOccurs="unbounded" />
   </xs:sequence>
   <xs:attribute name="mid" type="xs:string" />
   <xs:attribute name="name" type="xs:string" />
   <xs:attribute name="path" type="xs:string" />
   <xs:attribute name="remark" type="xs:string" />
   <xs:attribute name="level" type="xs:short" />
   <xs:attribute name="parentId" type="xs:string" />
   <xs:attribute name="size" type="xs:string" />
  </xs:complexType>
 </xs:element>
 <xs:element name="modules" msdata:IsDataSet="true" msdata:Locale="zh-CN" msdata:EnforceConstraints="False">
  <xs:complexType>
   <xs:choice maxOccurs="unbounded">
    <xs:element ref="module" />
   </xs:choice>
  </xs:complexType>
 </xs:element>
</xs:schema>


--  作者:cwzb
--  发布时间:5/24/2004 5:34:00 PM

--  
模块加载页页[.ASPX]

<%@ Page language="c#" Codebehind="MyBusiness.aspx.cs" AutoEventWireup="false" Inherits="OrdermanSystem.WEBUI._default.MyBusiness" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>MyBusiness</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  <LINK href="../../_style/main.css" type="text/css" rel="stylesheet">
  <script src="../_script/SubLibrary.js" language="javascript"></script>
  <script language="javascript">
   function bm_hidden(obj)
   {
       var obj1=obj.nextSibling;
       if(obj1.style.display!="block")
           obj1.style.display="block"
       else
           obj1.style.display="none";
   }
  </script>
  <style type="text/css"> .bmc_sunken { display: none;}
 .bmc_top { height: 25px; border:1px solid; border-color:#336699; background-color:#DCE8F3; }
 .bmc_hidde { display: none; }
  </style>
  <%PaterScript();%>
  <%ChildScript();%>
 </HEAD>
 <body id="body1" onunload="">
  <xml id="myModules" src="../_data/ModulesFile.xml"></xml>
  <form id="Form1" method="post" runat="server">
   <FONT face="宋体">我的业务</FONT>
   <table width="100%" cellpadding="0" cellspacing="0">
    <tr>
     <td width="20%"></td>
     <td width="80%" valign=top>
      <table datasrc="#myModules" datafld="module" width="100%" cellpadding="0" cellspacing="0">
       <tbody>
        <tr class="bmc_hidde" onclick="bm_hidden(this);">
         <td><table cellpadding="0" cellspacing="0" border="0" width="100%">
           <tr>
            <td height="31" background="../_images/sectionleftcap.jpg" style="WIDTH: 17px"></td>
            <td background="../_images/sectionback.jpg">
             <span style="color:006bad;" datafld="name" />
            </td>
            <td background="../_images/sectionrightcap.jpg" style="WIDTH: 17px"></td>
           </tr>
          </table>
          <input onPropertyChange="hiddePater(this);" value="0" type="hidden" datafld="mid">
         </td>
        </tr>
        <tr class="bmc_sunken">
         <td align="right">
          <table width="100%" datasrc="#myModules" datafld="module" cellpadding="0" cellspacing="0">
           <tbody>
            <tr class="bmc_hidde">
             <td width="45%">
              <input onclick="openwin(this.nextSibling.value,this.nextSibling.nextSibling.value.split(',')[0],this.nextSibling.nextSibling.value.split(',')[1]);"
               type="button" datafld="name"><input type="hidden" class="bmc_sunken" datafld="path"><input type="hidden" class="bmc_sunken" datafld="size">
             </td>
             <td align="left">
              <input onPropertyChange="hiddeChild(this);" type="hidden" datafld="mid"> <span datafld="name">
              </span>
             </td>
            </tr>
           </tbody>
          </table>
          <br>
         </td>
        </tr>            
       </tbody>
      </table>
     </td>
    </tr>
   </table>
  </form>
 </body>
</HTML>


--  作者:cwzb
--  发布时间:5/24/2004 5:35:00 PM

--  
模块加载页页[.ASPX.cs]

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;

namespace OrdermanSystem.WEBUI._default
{
 /// <summary>
 /// MyBusiness 的摘要说明。
 /// </summary>
 public class MyBusiness : System.Web.UI.Page
 {
  private void Page_Load(object sender, System.EventArgs e)
  {
        
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {    
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion


  public void PaterScript()
  {
   Array pater    =this.GetDataArray(true);
    
   Response.Write("<script language=\"javascript\">                                           \n");
   Response.Write("function hiddePater(obj)                                                   \n");
   Response.Write("{                                                                          \n");
   Response.Write(" if("                                                                      );
   
   for(int i=0;i<pater.Length;i++)
   {
    Response.Write(string.Format("obj.value=='{0}'",pater.GetValue(i).ToString()));
    
    if(i<pater.Length-1)
     Response.Write("||");
   }

            Response.Write(")                                                                          \n");
   Response.Write(" {                                                                      \n");
   Response.Write("  obj.parentElement.parentElement.style.display='block';             \n");
   Response.Write(" }                                                                      \n");
   Response.Write("}                                                                          \n");
   Response.Write("</script>                                                                  \n");
  }
  public void ChildScript()
  {
   Array childs=this.GetDataArray(false);

   Response.Write("<script language=\"javascript\">                                           \n");
   Response.Write("function hiddeChild(obj)                                                   \n");
   Response.Write("{                                                                          \n");
   Response.Write(" if("                                                                      );
   
   for(int i=0;i<childs.Length;i++)
   {
    Response.Write(string.Format("obj.value=='{0}'",childs.GetValue(i).ToString()));
    
    if(i<childs.Length-1)
     Response.Write("||");
   }

   Response.Write(")                                                                          \n");
   Response.Write(" {                                                                      \n");
   Response.Write("  obj.parentElement.parentElement.style.display='block';             \n");
   Response.Write(" }                                                                      \n");
   Response.Write("}                                                                          \n");
   Response.Write("</script>                                                                  \n");
  }

  
  private Array GetDataArray(bool ispater)
  {
   ArrayList paters=new ArrayList();
   ArrayList childs=new ArrayList();
   string   temp;

   DataRowCollection rows=(DataRowCollection)Session["myPrivilege"];

   /////////////////////////////////////////////////////////////////
   if(ispater)
   {
    for(int i=0;i< rows.Count;i++)
    {
     temp=rows[i]["sModuleID"].ToString().Substring(0,2);

     if(paters.IndexOf(temp)<0)
      paters.Add(temp);     
    }
    return paters.ToArray();
   }
   else
   {
    for(int i=0;i<rows.Count;i++)
    {
     temp=rows[i]["sModuleID"].ToString();
     
     if(temp.Length>2)
     {
      childs.Add(temp);
     }
    }
    return childs.ToArray();
   }   
  }  
 }
}


--  作者:bqcmu
--  发布时间:5/31/2004 4:20:00 PM

--  
非常感谢~~~

--  作者:萧霄
--  发布时间:10/19/2004 12:21:00 AM

--  
看不懂也要顶
加紧学
以后几看得懂了
--  作者:xmzhy
--  发布时间:11/30/2004 3:58:00 PM

--  
能否提供源代码下载?这样就省事了。
--  作者:yulinchen139
--  发布时间:6/24/2005 12:06:00 AM

--  
有同感
--  作者:devUser
--  发布时间:6/24/2005 3:54:00 PM

--  
狂顶。。。。。。。。楼主看起来蛮帅的。
--  作者:cwzb
--  发布时间:7/1/2005 10:52:00 PM

--  
这是我整整一年前的作品...

现在看来...东西差了......真不敢拿出来现人了...不好意思啊:)

现在有更漂亮的东西...有机会再拿出来献献.

//其实,我不是把所有的源代码都贴上了???


[此贴子已经被作者于2005-7-8 20:58:56编辑过]

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
343.750ms