动态菜单,说得不清楚啊,是下拉的那种吗,我有个菜单生成器,很棒,需要,流下email

解决方案 »

  1.   

    弹出式菜单
    xrll() 兄请确认一下,我没有收到[email protected] or [email protected]
      

  2.   

    給我發一個好嗎 [email protected]
      

  3.   

    xrll() 兄 100分归你啦,再问Aspnetmenu控件 什么地方可以搞到
      

  4.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    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 System.IO;
    using System.Text;namespace catv
    {
    /// <summary>
    /// Win_MyWeb 的摘要说明。
    /// </summary>
    public class Win_MyWeb : System.Web.UI.Page
    {
    public SqlConnection MyConn;
    public SqlDataAdapter MyDataAdapter;
    public DataSet MyDataSet;
    public SqlCommand MyCMD;
    public SqlDataReader MyDataReader;
    public string m_Str_Counter; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    }
           

       //打开数据库联接并创建一个SqlCommand,同时激活事务
    public bool MyConnectionOpen()
    {
    //功能说明:联接数据库
    //与数据连接相关的参数存放在 web.config 文件中
    m_Str_Counter = System.Configuration.ConfigurationSettings.AppSettings["MyCounter"];
    this.MyConn = new SqlConnection(m_Str_Counter);
    try
    {
    this.MyConn.Open();
    this._ErrMsg="";
    }
    catch(Exception err)
    {
    this._ErrMsg=err.ToString();
    return false;
    }
    return true;
    }       //关闭数据库联接
    public void MyConnectionClose()
    {
    //功能说明:关闭数据库联接
    this.MyConn.Close();
    }      //创建DateSet并加入一个数据表
    public bool MyDataSetFill(string Str_SQL,string Str_TableName)
    {
    //功能说明:创建DateSet并加入一个数据表
    //变量说明:
    //          Str_SQL         函数接受的Select语句
    //          Str_TableName   DateSet中加入数据表的别名
    if(this.MyConnectionOpen())
    {
    this.MyDataAdapter = new SqlDataAdapter(Str_SQL,this.MyConn);
    this.MyDataSet = new DataSet();
    try
    {
    this.MyDataAdapter.Fill(this.MyDataSet,Str_TableName);
    this.MyConnectionClose();
    }
    catch(Exception e)
    {
    this.ErrorMsg(e.ToString());
    this.MyConnectionClose();
    return false;
    }
    return true;
    }
    else
    {
    return false;
    }
    }       
    //往DateSet中追加数据表
    public bool MyDataSetFillAdd(string Str_SQL,string Str_TableName)
    {
    //功能说明:往DateSet中追加数据表
    //变量说明:
    //          Str_SQL         函数接受的Select语句
    //          Str_TableName   DateSet中加入数据表的别名
    if(this.MyConnectionOpen())
    {
    this.MyDataAdapter = new SqlDataAdapter(Str_SQL,this.MyConn);
    try
    {
    this.MyDataAdapter.Fill(this.MyDataSet,Str_TableName);
    this.MyConnectionClose();
    }
    catch(Exception e)
    {
    this.ErrorMsg(e.ToString());
    this.MyConnectionClose();
    return false;
    }
    return true;
    }
    else
    {
    return false;
    }
    }       //从DateSet中清除数据表
    public void MyDatasetFillDel(string Str_TableName)
    {
    //功能说明:从DateSet中清除数据表
    //变量说明:
    //          Str_TableName   DateSet中加入数据表的别名
    this.MyDataSet.Tables[Str_TableName].Clear();
    }

    //获取子系统文本菜单
    public void ModuleTextMenu(int Int_ModuleId,int Int_Top,int Int_Left)
    {
    //功能说明:获取子系统快捷工具栏
    //变量说明:
    //          Int_ModuleId     子系统ID
    //          Int_Top          文本菜单上边距
    //          Int_Top          文本菜单左边距
    int divleft = 0;
    string onmousemovemsg = "";
    string TextMenuMSG = "<table border=0 width=788 style='position: absolute; left: "+Int_Left+"px; top: "+Int_Top+"px; border: 1 outset #FFFFFF' bgcolor='#D4D0C8' cellspacing=0 cellpadding=0 height=27><tr><td width='100%' valign='middle'>";
    string str_Sql="select * from menu_big where module_id="+Int_ModuleId+"";
    if(this.MyDataSetFill(str_Sql,"menu_big"))
    {
    for (int i=0;i<this.MyDataSet.Tables["menu_big"].Rows.Count;i++)
    {
    string onmouseovermsg = "movemenu('"+"small"+i.ToString().Trim()+"');";
    string onmousedownmsg = "clickmenu('"+"small"+i.ToString().Trim()+"');";
    for( int k=0;k<this.MyDataSet.Tables["menu_big"].Rows.Count;k++)
    {
    if (i!=k)
    {
    onmouseovermsg = onmouseovermsg + "clickmenuclose('"+"small"+k.ToString().Trim()+"');";
    onmousedownmsg = onmousedownmsg + "clickmenuclose('"+"small"+k.ToString().Trim()+"');";
    }
    }
    TextMenuMSG = TextMenuMSG+"<div style=\"z-index: 1; visibility: visible;\" onmouseover=\""+onmouseovermsg+"\" onmousedown=\""+onmousedownmsg+"\"><table height=24 cellspacing=0 cellpadding=0 style=\"float: left\"><tr><td align=center valign=middle>&nbsp;&nbsp;"+this.MyDataSet.Tables["menu_big"].Rows[i]["big_class_name"].ToString().Trim()+"&nbsp;&nbsp;&nbsp;</td></tr></table></div>";
    TextMenuMSG = TextMenuMSG+"<div id=\""+"small"+i.ToString().Trim()+"\" style=\"z-index: "+120+"; visibility: hidden;\"><table cellspacing=0 cellpadding=0 style=\"Z-INDEX: 103; LEFT: "+divleft+"px; POSITION: absolute; TOP: 26px; float: left; border: 1 outset #D4D0C8\" bgcolor=\"#D4D0C8\">";
    divleft = divleft+this.MyDataSet.Tables["menu_big"].Rows[i]["big_class_name"].ToString().Trim().Length*13+16;
    str_Sql="select * from menu_small where big_class_id="+this.MyDataSet.Tables["menu_big"].Rows[i]["id"].ToString().Trim()+" order by id";
    if(this.MyDataSetFillAdd(str_Sql,"menu_small"))
    {
    if (this.MyDataSet.Tables["menu_small"].Rows.Count!=0)
    {
    onmousemovemsg = onmousemovemsg+"document.all[\""+"small"+i.ToString().Trim()+"\"].style.visibility == 'visible'";
    if (i<this.MyDataSet.Tables["menu_big"].Rows.Count-1)
    {
    onmousemovemsg = onmousemovemsg + " || ";
    }
    for (int j=0;j<this.MyDataSet.Tables["menu_small"].Rows.Count;j++)
    {
    if(this.MyDataSet.Tables["menu_small"].Rows[j]["small_class_name"].ToString().Trim()=="分隔线")
    {
    TextMenuMSG = TextMenuMSG+"<tr><td valign=middle height=10><hr width=\"86%\" align=center></td></tr>";
    }
    else
    {
    TextMenuMSG = TextMenuMSG+"<tr><td valign=middle height=26>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\""+this.MyDataSet.Tables["menu_small"].Rows[j]["small_class_link"].ToString().Trim()+"\" onclick=\"clickmenuclose('"+"small"+i.ToString().Trim()+"');\" target=main>"+this.MyDataSet.Tables["menu_small"].Rows[j]["small_class_name"].ToString().Trim()+"</a>&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>";
    }
    }
    }
    this.MyDatasetFillDel("menu_small");
    }
    else
    {
    this.MyConnectionClose();
    this.MessgeBox("读取子菜单数据表错误!");
    }
    TextMenuMSG = TextMenuMSG+"</table></div>";
    }
    this.MyDatasetFillDel("menu_big");
    }
    else
    {
    this.MyConnectionClose();
    this.MessgeBox("读取主菜单数据表错误!");
    }
    TextMenuMSG = TextMenuMSG+"</td></tr></table>";
    if(onmousemovemsg=="")
    {
    onmousemovemsg="1==1";
    }
    TextMenuMSG = TextMenuMSG+"<script language=JavaScript>function clickmenuclose(menuid){eval(\"document.all['\"+menuid+\"'].style.visibility='hidden'\")}function clickmenu(menuid){if(document.all[\"\"+menuid+\"\"].style.visibility == 'visible'){eval(\"document.all['\"+menuid+\"'].style.visibility='hidden'\")}else{eval(\"document.all['\"+menuid+\"'].style.visibility='visible'\")}}function movemenu(menuid){if("+onmousemovemsg+"){eval(\"document.all['\"+menuid+\"'].style.visibility='visible'\")}}</script>";
    this.Response.Write(TextMenuMSG);
    }
      

  5.   

    补充说明:
    类public bool MyConnectionOpen()里两个this._ErrMsg=可以删除(没用)。
    缺少一个弹出消息的类(其实就是javascript的alert)
    public void MessgeBox(string msg)
    {
    //功能说明:弹出一个消息框
    //变量说明:
    //          msg   接受的提示信息
    this.RegisterStartupScript("suggestion","<script language=javascript>alert('"+msg+"');</script>");
    }