亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于.NET技術(shù)動(dòng)態(tài)導(dǎo)航菜單的設(shè)計(jì)與實(shí)現(xiàn)

        2015-04-29 00:44:03蘭萍
        計(jì)算機(jī)時(shí)代 2015年2期
        關(guān)鍵詞:數(shù)據(jù)庫設(shè)計(jì)算法

        蘭萍

        摘 要: 通過樹型菜單,用戶可以對(duì)資源的結(jié)構(gòu)、類型有直觀的了解,但目前很多B/S系統(tǒng)的菜單還是通過代碼生成的。為此,基于.NET技術(shù),通過開源項(xiàng)目PetaPoco實(shí)現(xiàn)代碼,設(shè)計(jì)并實(shí)現(xiàn)了動(dòng)態(tài)導(dǎo)航菜單系統(tǒng);介紹了數(shù)據(jù)庫設(shè)計(jì)、算法思想。該技術(shù)避免了靜態(tài)目錄樹下因數(shù)據(jù)源經(jīng)常性改變而頻繁修改程序代碼的弊端,導(dǎo)航菜單通過數(shù)據(jù)庫進(jìn)行控制,提高了系統(tǒng)的安全性,使管理變得更加靈活、高效。

        關(guān)鍵詞: 動(dòng)態(tài)導(dǎo)航菜單; PetaPoco; 數(shù)據(jù)庫設(shè)計(jì); 算法

        中圖分類號(hào):TP301 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)02-42-03

        Design and implementation of dynamic navigation menu based on .NET

        Lan Ping

        (Computer department, Shanghai information technology college, Shanghai 200331)

        Abstract: Through the menu tree, the user can understand structure and types of the resources. Although many current B/S system menus are generated by code. A dynamic navigation menu based on ASP.NET is introduced. The code is mainly realized through the open source project PetaPoco. The database design and algorithm are introduced. The techniques have avoided the complex modification program code resulting from the change of data source under static catalog tree. The navigation menu is controlled by database which improves security and makes the management more flexible and efficient.

        Key words: dynamic navigation menu; PetaPoco; database design; algorithm

        0 引言

        樹型菜單使用比較廣泛,比如我們熟悉的資源管理器就是典型的樹型菜單。它在頁面當(dāng)中可以起到導(dǎo)航器的作用。通過樹型菜單,用戶可以對(duì)資源的結(jié)構(gòu)、類型有一個(gè)直觀的了解[1]。網(wǎng)站的開發(fā)技術(shù)多種多樣的,比如ASP.NET、JSP、PHP等,但無論采用何種技術(shù),一般而言導(dǎo)航菜單都是網(wǎng)頁中必不可少的一部分。導(dǎo)航菜單通常是將相應(yīng)的代碼寫入頁面中的某一個(gè)區(qū)域中來實(shí)現(xiàn),但是這樣的網(wǎng)站缺乏可維護(hù)性[2]。為了解決這個(gè)問題,本文介紹了基于ASP.NET技術(shù)的動(dòng)態(tài)導(dǎo)航菜單的設(shè)計(jì)與實(shí)現(xiàn)方法。

        1 通過Nuget添加petaPoco的引用

        1.1 PetaPoco的介紹及添加

        Nuget是一個(gè).NET平臺(tái)下的開源的項(xiàng)目,它是Visual Studio的擴(kuò)展。在使用Visual Studio開發(fā)基于.NET Framework的應(yīng)用時(shí),Nuget能把在項(xiàng)目中添加、移除和更新引用的工作變得更加快捷方便。Nuget是ASP.NET Gallery的一員。NuGet是免費(fèi)、開源的包管理開發(fā)工具,專注于在.NET應(yīng)用開發(fā)過程中,簡單地合并第三方的組件庫[3]。

        PetaPoco是一款適用于.Net和Mono的微小、快速、單文件的微型對(duì)象關(guān)系映射器(ORM, Object Relational Mapper)。與那些功能完備的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非豐富的功能。使用PetaPoco只需要引入一個(gè)C#文件,就可以使用強(qiáng)類型的 POCO(Plain Old CLR Object),并支持使用T4模板生成的類等等。

        PetaPoco最讓人感興趣的功能包括:

        ⑴ 可與SQL Server、SQL Server CE、MySQL、PostgreSQL以及Oracle數(shù)據(jù)庫協(xié)同工作;

        ⑵ 包含針對(duì)Insert/Delete/Update/Save以及IsNew的多個(gè)輔助方法;

        ⑶ 支持簡單事務(wù);

        ⑷ 對(duì)于翻頁請(qǐng)求會(huì)自動(dòng)計(jì)算總記錄數(shù),并獲取特定分頁;

        ⑸ 支持參數(shù)替換,能夠從對(duì)象屬性中抓取命名參數(shù)(named parameters);

        ⑹ 包括一個(gè)消耗資源很少的SQL Builder類;

        ⑺ 部分記錄更新;

        ⑻ 包括T4 Templates,可以用于基于數(shù)據(jù)庫結(jié)構(gòu)生成POCO類。

        由于PetaPoco是開源項(xiàng)目,因此添加條件來處理如空間數(shù)據(jù)等特定情況會(huì)很容易。

        某項(xiàng)目采用微軟的Visual Studio 2012開發(fā)平臺(tái),為上海一家園林公司開發(fā),新建項(xiàng)目(不是新建網(wǎng)站)-->asp.net web窗體應(yīng)用程序,自動(dòng)添加很多包。

        在項(xiàng)目名上單擊右鍵,在彈出式菜單中單擊“管理nuget程序包”,添加“petapoco-a tiny ormish thing for your pocos”包。

        1.2 web.config的配置

        在web.config文件中加入節(jié)點(diǎn),并配置connectionString,providerName屬性。

        "Data Source=lp\lplplp; User Id=sa; Password=lp15;

        database=XingLu_IMS;"providerName="System.Data.SqlClient"/>

        1.3 DataBase.tt的參數(shù)設(shè)置

        打開DataBase.tt,修改ConnectionStringName,以及Namespace和RepoName。

        ConnectionStringName="DefaultConnection";

        Namespace="YC.PetaPoco";

        RepoName="DBUtils";

        保存之后VS會(huì)自動(dòng)執(zhí)行模板文件,并生成實(shí)體類文件: Database.cs。如果沒有生成成功,把VS關(guān)閉重新打開即可。

        2 數(shù)據(jù)庫設(shè)計(jì)

        DBMS采用微軟的SQL Server 2012,表名為Qs_Xl_modules,Qs_Xl_modules數(shù)據(jù)庫表的設(shè)計(jì)[4]如表1所示。

        3 算法思想

        ⑴ 執(zhí)行SQL查詢語句返回Parentid字段為0(為0表示菜單項(xiàng)是一級(jí)導(dǎo)航菜單)的數(shù)據(jù)集,并按Displayorder字段升序排列;

        ⑵ 利用for語句循環(huán)添加Parentid字段為0的菜單項(xiàng),每一項(xiàng)為表格

        的1行,同時(shí)獲取每項(xiàng)的Mid;

        ⑶ 獲取每1個(gè)Mid,執(zhí)行SQL查詢語句返回Parentid字段為Mid(為二級(jí)導(dǎo)航菜單)的數(shù)據(jù)集,并按Displayorder字段升序排列;

        ⑷ 利用for語句循環(huán)添加Parentid字段為Mid的菜單項(xiàng),每一項(xiàng)為表格

        的1行。注意該for循環(huán)語句嵌套在⑵中for循環(huán)語句里面,形成for循環(huán)的嵌套。

        4 部分核心代碼

        部分靜態(tài)代碼[5]如下:

        ……

        ……

        "img/caidan_2.jpg" id="menu" runat="server">

        部分核心動(dòng)態(tài)代碼[6]:

        ……

        using YC.PetaPoco; //導(dǎo)入該命名空間

        ……

        public void Show(string str)

        { List list=Qs_Xl_module.Fetch("select

        * from Qs_Xl_modules where Parentid=0 and ShowState=1 and Class='"+ str+"' order by Displayorder");

        string content="

        border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";

        content+="

        "; //第一行(空行)

        Qs_Xl_module module;

        for (int i=0, count=list.Count; i

        { module=list[i];

        if (module==null) continue;

        content+="

        ";

        List list1=Qs_Xl_module.Fetch("select

        * from Qs_Xl_modules where Parentid="+module.Mid

        .ToString()+" and ShowState=1 and Class='"+str+"'

        order by Displayorder");

        for (int j=0, len=list1.Count; j

        { if (list1[j]==null) continue;

        content+="

        ?;?;

        ?;

        "+module.Modulename+"

        +(i==0 ? "":" style=\"display:none;\"")+">?;

        href=\""+list1[j].Linkurl+"\" class=\"menu-two2\">

        ?;?;

        16\" height=\"15\" />"+list1[j].Modulename+"

        猜你喜歡
        數(shù)據(jù)庫設(shè)計(jì)算法
        基于MapReduce的改進(jìn)Eclat算法
        Travellng thg World Full—time for Rree
        進(jìn)位加法的兩種算法
        算法初步兩點(diǎn)追蹤
        基于增強(qiáng)隨機(jī)搜索的OECI-ELM算法
        試論數(shù)據(jù)庫設(shè)計(jì)在網(wǎng)站開發(fā)中的應(yīng)用
        基于WEB的科研信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        軟件開發(fā)中數(shù)據(jù)庫設(shè)計(jì)理論的實(shí)踐
        面向等級(jí)考試,探討高校理工科計(jì)算機(jī)基礎(chǔ)課程教學(xué)改革
        考試周刊(2016年47期)2016-06-29 22:15:13
        網(wǎng)站管理系統(tǒng)中數(shù)據(jù)庫設(shè)計(jì)的應(yīng)用研究
        亚洲av熟女一区二区三区站| 中文字幕久热精品视频免费| 日本啪啪一区二区三区| 草逼视频污的网站免费| 人人妻人人澡人人爽超污| 久久乐国产精品亚洲综合| 精品不卡久久久久久无码人妻| 亚洲成在人线久久综合| 国产呦系列呦交| 91九色极品探花内射| 风流老太婆大bbwbbwhd视频| 成人综合网亚洲伊人| 国产亚洲精品hd网站| 中文字幕人乱码中文字幕乱码在线 | 五月天综合在线| 日韩av一区二区三区精品| 精品在线视频在线视频在线视频 | 国产精品狼人久久影院软件介绍| 久久久久亚洲av成人网人人网站| 中文字幕第一页亚洲| 日韩国产有码精品一区二在线| 亚洲综合中文字幕综合| 老师粉嫩小泬喷水视频90| 亚洲国产美女精品久久久久| 亚洲AV秘 片一区二区三区| 少妇被爽到高潮喷水免费福利| 亚洲午夜精品一区二区| 少妇特黄a一区二区三区| 色综合色综合久久综合频道| 免费看av网站在线亚洲| 免费人妻无码不卡中文字幕系| 国产人妻精品一区二区三区不卡 | 欧洲女人性开放免费网站| аⅴ天堂国产最新版在线中文| 国产久久久自拍视频在线观看| 人妻av有码中文字幕| 老外和中国女人毛片免费视频| 美女超薄透明丝袜美腿| 国产激情一区二区三区不卡av| 乱中年女人伦av一区二区| 亚洲人成人网毛片在线播放|