ASP.NET JS+Sql無限級樹型菜單

來源:互聯網
上載者:User
功能的實現也是藉助了別人寫的JS API,:我從這兒下載的-無限級可重新整理Js樹型菜單;解壓後檔案夾中api.html是對api的使用說明。
開發工具:Visual Studio 2008 Team System
資料庫:Sql Server 2005 開發版
JQuery:1.3
資料訪問使用了NHibernate:入門參考;自己測試可以直接使用ADO.NET中對象訪問資料庫讀取結果集

一、瀏覽效果

二、資料庫表設計
列名      資料類型
ID          int   
ParentMenuID    int   
MenuName      nvarchar(50)   
MenuCode          nvarchar(20)   
MenuTaxis           int   
MenuClickURL    nvarchar(200)   
三、代碼實現
前台:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>無標題頁</title>
    <!-- Tree CSS -->
    <link rel="StyleSheet" href="Style/dtree.css" type="text/css" />
    <!-- Tree JS-->
    <script type="text/javascript" src="JS/dtree.js"></script>
    <!--JQuery LIB -->
    <script type="text/javascript" src="JS/JQuery/jquery.js"></script>
    <script type="text/javascript" src="JS/JQuery/jquery.dimensions.js"></script>
    <script type="text/javascript" src="JS/JQuery/jquery.corner-min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#imgLoading").hide();
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Literal ID="ltlTree" runat="server"></asp:Literal>
    </form>
</body>
</html>

後台:
我在Page_Load方法執行前,向頁面輸出了一個img控制項,用於在資料載入慢的時候,顯示一個gif動畫圖,提示資料正在載入using System;
using System.Text;
using SunZonModel;
using SunZonDAL;
using System.Collections.Generic;

public partial class _Default : System.Web.UI.Page 
{
    StringBuilder appendTree = new StringBuilder();
    DALMenu menuInstance = new DALMenu();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //拼javascript
            appendTree.Append("<a href=\"javascript: d.openAll();\">Open</a> | <a href=\"javascript: d.closeAll();\">Close</a><br />")
                .Append("<script type=\"text/javascript\">")
                .Append("d = new dTree('d');")
                .Append("d.add(0,-1,'系統模組');");

            CreateTree(0);

            appendTree.Append("document.write(d);")
                .Append("d.closeAll();")
                .Append("</script>");

            ltlTree.Text = appendTree.ToString();

            //ClientScript.RegisterStartupScript(this.GetType(),"key",appendTree.ToString());
        }
    }
    /// <summary>
    /// 遞迴添加樹節點
    /// </summary>
    /// <param name="MenuParentID"></param>
    private void CreateTree(Int32 MenuParentID)
    {
        IList<SunZonTMSMenu> list = menuInstance.GetMenuByParentID(MenuParentID);
        for (Int32 i = 0; i < list.Count; i++)
        {
            appendTree.Append(String.Format("d.add({0},{1},'{2}','{3}','{2}','_self');",
                list[i].ID, MenuParentID, list[i].MenuName,list[i].MenuClickURL));
            CreateTree(list[i].ID);
        }
    }
    protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);
        //顯示正在載入資料的提示
        Response.Write("<img src=\"Images/Loading/loading01.gif\" id=\"imgLoading\" alt=\"資料載入中\" />");
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.