qingtianyzl

晴天blog(QQ:14493558)
  博客园  :: 新随笔  :: 联系 :: 管理

javascript动态菜单

Posted on 2006-05-30 17:25  晴天  阅读(637)  评论(0)    收藏  举报

 

<%@ Import Namespace="System.Data" %>
<%@ Page language="c#" Codebehind="Index2.aspx.cs" AutoEventWireup="false" Inherits="RongDa.Index2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<title>LeftMenu</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">
        
<style type="text/css"> .MainMenu { }
    UNKNOWN 
{ BACKGROUND-COLOR: lime }
        
</style>
        
<script language="javascript">
     
<!--
         
var currentMenu = null;
         
         
function MainMenu()
         
{
             
//菜單ID
            this.ID = "MainMenu1";
             
//菜單項
             this.Items = new Array();
            
//父控件
             this.Parent = document.body;
            
//菜單寬
             this.Width = 200;
             
//菜單樣式
             this.className = "";
             
             
//初使化
             MainMenu_Initialization(this);
             
             
//顯示
             this.Render = MainMenu_Render;
             
         }

         
         
function MainMenu_Initialization(sender)
         
{
             
        }

         
         
function MainMenu_Render()
         
{
             sender 
= this;
             
             
var table = document.createElement("table");
             table.cellPadding
=3;
             table.cellSpacing
=0;
             table.rules
="none";
             table.bordercolordark
="#0066ff";
             table.borderColor 
= "#ebebeb";
             table.width 
= sender.Width;
             table.id 
= sender.ID + "_menuTable";
             table.border 
= 1;
             table.bgcolor
="#0066ff";
             table.className 
= sender.className; 
             CreateMenuItems(sender,table); 
             sender.Parent.appendChild(table);
 
        }

         
         
function CreateMenuItems(sender,table)
        
{
             
for(var i=0; i<sender.Items.length; i++)
             
{
                 
var row = table.insertRow(table.rows.length);
                 
var cell0 = row.insertCell(0);
                 
var imgCtrl = document.createElement("img");
                 imgCtrl.src 
=  sender.Items[i][2];
                 cell0.appendChild(imgCtrl);
                
                 
var cell1 = row.insertCell(1);
                 
var ACtrl = document.createElement("a");
                 ACtrl.href 
= sender.Items[i][1];
                 ACtrl.innerHTML 
= sender.Items[i][0];
                 cell1.appendChild(ACtrl);
                
                 
var cell2 = row.insertCell(2);
                 
var items = sender.Items[i][3];
                
if(items.length>0)
                
{
                    
var img1 = document.createElement("img");
                    img1.src 
=  "image/017.gif";
                    img1.onclick 
= ShowItemMenu;
                    img1.style.cursor 
= "hand";
                    
                    img1.table 
= table;
                    img1.sender 
= sender;
                    img1.item 
= i;
                    cell2.appendChild(img1);
               }

                
else
                
{
                  cell2.innerHTML 
= "";
                }

                
                row.onmouseover 
= function()
                
{
                    
this.style.backgroundColor = "Blue";
                    
//this.bgColor = "red";
                }

                row.onmouseout 
= function()
                
{
                    
this.style.backgroundColor = "#FFFFFF";
                    
//this.bgColor = "#FFFFFF";
                }

            }

       }

        
        
function ItemMenu()
        
{
           
//菜單項
           this.Items = new Array();
           
//父控件
           this.Parent = document.body;
            
//菜單寬
           this.Width = 200;
           
//菜單樣式
           this.className = "";
           
//上級Table
           this.parentTable = null;
          
            
//顯示
           this.Render = ItemMenu_Render;
           
      }

        
      
function ItemMenu_Render()
       
{
          
var sender = this;
         
           
var table = document.createElement("table");
           table.cellPadding
=3;
           table.cellSpacing
=0;
           table.rules
="none";
           table.bordercolordark
="#006699";
           table.borderColor 
= "#ebebeb";
           table.border 
= 1;
           table.style.position 
= "absolute";
           table.style.left 
= window.event.x-1;
           table.style.top 
= event.y+1;
           table.sender 
= sender;
           
            CreateMenuItems(sender,table);
           
            sender.Parent.appendChild(table);
           
           table.onmouseover 
= function()
           
{
              
this.sender.parentTable.style.display = "block";
              
this.style.display = "block";
           }

           table.onmouseout 
= function()
           
{
               
this.style.display = "none";
           }

           
     }

      
    
function ShowItemMenu()
    
{
        
var sender = this.sender;
        
var item = this.item;
        
var items = sender.Items[item][3];
        
var table = this.table; 
        
var itemMenu = new ItemMenu();
        itemMenu.Items 
= items;
        itemMenu.parentTable 
= table;
        itemMenu.Render();
        
    }

       
    
//-->
        
</script>
    
</HEAD>
    
<body MS_POSITIONING="GridLayout">
        
<form id="Form1" method="post">
            
<FONT face="新細明體"></FONT>
            
<script language="javascript">
       
<!--
             window.onload 
= function()
             
{
                 
var menu = new MainMenu();
                 
<%

                    
                    
int i=0;
                    
while(reader.Read())
                    
{
                        string PKID 
= reader["PKID"].ToString(); 
                        WriteJavascript(PKID,i,
"Items");
                        Response.Write(
"menu.Items["+ (i+++"] =new Array('" + reader["name"+ "','" + reader["Link"+ "','img',Items" + (i-1)+");" + "\n");
                    }

                    
                    
                 
%>
                 menu.Width 
= 200;
                 menu.className 
= "MainMenu";
                 
//menu.Parent = document.all("Menu1");
                 menu.Render();
             }

         
//-->
            
</script>
            
<div id="Menu1" style="Z-INDEX: 101; POSITION: absolute"></div>
            
<FONT face="宋体"></FONT><FONT face="宋体"></FONT><FONT face="宋体"></FONT><FONT face="宋体">
            
</FONT><FONT face="宋体"></FONT>
        
</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;

namespace RongDa
{
    
/// <summary>
    
/// Index2 的摘要说明。
    
/// </summary>

    public class Index2 : System.Web.UI.Page
    
{
        
        
protected IDataReader reader;
        
protected DBEntry.DBInterface entry = new DBEntry.OleDb.Helper();

        
private void Page_Load(object sender, System.EventArgs e)
        
{

                BindPage();
              

        }


        
private void BindPage()
        
{
            
string cmdText = "Select * from SysMenu where ParentPkid=0";
            reader 
= entry.GetReader(cmdText);
            
if(entry.LastError!=null)
                Response.Write(entry.LastError);

        }


        
protected void WriteJavascript(string PKID,int i,string parentName)
        
{
            
string curmenu = parentName + i.ToString();
            
            
string cmdText = "Select * from SysMenu where ParentPkid=" + PKID;
            DBEntry.DBInterface entry1 
= new DBEntry.OleDb.Helper();
            IDataReader rdr 
= entry1.GetReader(cmdText);
            
if(entry1.LastError!=null)
            
{
                Response.Write(
"alert('" + entry1.LastError + "');");
            }


            Response.Write(
" var "+curmenu +" = new Array();\n");

            
int j=0;
            
if(rdr!=null)
            
{
                
while(rdr.Read())
                
{  
                    
string subPKID = rdr["PKID"].ToString();
                    WriteJavascript(subPKID,j,curmenu);
                    Response.Write(curmenu 
+ "["+ (j+++ "] = new Array('" + rdr["name"+ "','" + rdr["Link"+ "','img'," + curmenu + (j-1).ToString() + ");" + "\n");
                }

            }

        }


        
Web 窗体设计器生成的代码
    }

}

60多年前,一个朋友给我讲了一个笑话,把我笑翻了,后来由于肚子太疼进了医院。医生给我做手术前,问我 为什么笑成这样,我就讲给他听。他听后狂笑不止,最后竟然笑死了。 我被送上了法庭。法官让我把那个笑话讲出来,由陪审团判定是否与过失杀人的事实要件符合,我要求签订免责合同。法官宣布休庭,一天后重新开庭,宣布接纳我的意见。于是,我当庭把那个笑话讲了出来,结果有人笑得敲桌子,有人笑得在地上打滚。后来,当天所有听到这个笑话的人都笑死了。 我瞬间成了名人,各路记者纷纷要求采访我,我知道这笑话讲出去可能构成公共侵害,于是对着镜头,我含糊地说了一番话,大意就是:“理由永远是谎言,信仰永远是自慰。节目播出后,引起巨大反响。可没想到,有一天,几个神秘便衣闯进我的卧室,把我连拖带拽拉到一个黑屋子里。过了好久,一束强光照到我脸上。我勉强睁开眼睛,惊呆了,坐在我面前的人是目前惟一与我一样家喻户晓的人——总统。 总统大致交待了抓我的目的,很简单:把这个笑话录下来,然后送到中东敌对国家的独裁者那儿,笑死他。我只好答应他的要求,同时提出此笑话属于大规模杀伤性武器,不可针对平民。总统答应了。 两星期后,总统宣布已经掌握了那个笑话的关键技术,并且在沙漠地区试用成功。这在国际间引起轩然大波,很多国家惊慌失措,国际军事学家将此命名为“笑威慑”。就在此时,东方一个国家突然宣布也掌握了该笑话,原来给我讲笑话的那哥们投靠了该国。于是,我们之间形成了“笑威慑平衡”。 三年后,4月1日,我终日担心的终于发生了:中东一个恐怖组织盗取了那个笑话的原始技术。结果,文明遭到前所未有的破坏,各国政府惶惶不可终日。联合国只好召开全球首脑大会,最后将4月1日设定为愚人节。 60多年过去了,我已经风烛残年。在离开世界之前,作为历史见证人,我想有必要把这个笑话讲给大家。那天,我朋友给我讲的这个笑话很简单,很短,就一句话: http://www.tf-studio.com/WORK/FUN/15.HTML 必须回复后,才能查看