您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“ASP.NET Web開(kāi)發(fā)框架怎么實(shí)現(xiàn)功能導(dǎo)航”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“ASP.NET Web開(kāi)發(fā)框架怎么實(shí)現(xiàn)功能導(dǎo)航”吧!
功能導(dǎo)航主要解決如何布局功能,把功能如何合理的布置到頁(yè)面中?,F(xiàn)在流行的一種方案是左右結(jié)構(gòu)的導(dǎo)航,左邊樹(shù)狀的菜單,右邊顯示明細(xì)功能。實(shí)現(xiàn)出來(lái)的效果圖如下所示
同版本的C/S程序的界面,也是以同樣的效果出現(xiàn)
Web左邊點(diǎn)擊樹(shù)節(jié)點(diǎn),右邊打開(kāi)相應(yīng)的功能列表,顯示該節(jié)點(diǎn)下面有哪些功能。而這些功能節(jié)點(diǎn),均是用菜單設(shè)計(jì)器設(shè)計(jì)實(shí)現(xiàn),以方便客戶定制主界面。菜單設(shè)計(jì)器的設(shè)計(jì)樣式如下
關(guān)于如何實(shí)現(xiàn)樹(shù)節(jié)點(diǎn)的母子關(guān)系,有很多辦法。一種辦法是給樹(shù)的每個(gè)節(jié)點(diǎn)加一個(gè)ParentId,用于指示它的上一級(jí)節(jié)點(diǎn),這樣每設(shè)計(jì)一個(gè)節(jié)點(diǎn),均需要指出它的父節(jié)點(diǎn),以用于呈現(xiàn)母子關(guān)系。另一種方法,以本例子中實(shí)現(xiàn)為例子,1002為Sales的樹(shù)節(jié)點(diǎn),它的子節(jié)點(diǎn)全部用1002XX來(lái)標(biāo)識(shí),如上圖中所示,100201表示日記帳,100202表示報(bào)表,100203表示查詢。前一種方法,請(qǐng)參考框架數(shù)據(jù)庫(kù)中的表X_Menu,后一種請(qǐng)參考表UserGroupMenu。
導(dǎo)航的另一個(gè)目的,要實(shí)現(xiàn)中英文自動(dòng)切換,以方便不同的用戶習(xí)慣偏好。Enterprise Solution系列的組件,均內(nèi)置了中英文切換的功能,可以在Settings中,選擇習(xí)慣的語(yǔ)言進(jìn)行設(shè)置。對(duì)于Web應(yīng)用程序,用戶的語(yǔ)言偏好保存在瀏覽器的Cookie中,對(duì)于C/S程序,用戶的語(yǔ)言偏好保存在注冊(cè)表中。
再來(lái)看看,如何快速的找到需要的功能,并打開(kāi)執(zhí)行它。如果您習(xí)慣在左邊的菜單中查找,則可以直接在菜單對(duì)應(yīng)的右邊的功能列表區(qū)域中,打開(kāi)該功能。另一種方法是,在快速啟動(dòng)欄中輸入功能編碼,點(diǎn)擊Go按鈕,此時(shí),它會(huì)在新的選項(xiàng)中頁(yè)面中,打開(kāi)此功能。一般來(lái)說(shuō),系統(tǒng)預(yù)置了三種類(lèi)型的功能。
頁(yè)面功能;報(bào)表;自定義查詢
如何讓一個(gè)ASP.NET頁(yè)面成為功能點(diǎn),并自動(dòng)被系統(tǒng)框架找到呢? 請(qǐng)參考下面的例子代碼
[Function("AIITRL", "~/module/note.aspx")] public partial class note : EntryPageBase { protected override void PageLoadEvent(object sender, EventArgs e) { if (!IsPostBack) TransactionType = "BlotterEntity"; base.PageLoadEvent(sender, e); } }
給頁(yè)面加Function特性,***個(gè)參數(shù)是功能編碼,第二個(gè)參數(shù)是頁(yè)面的絕對(duì)地址。當(dāng)在快速啟動(dòng)欄中輸入AIITRL時(shí),框架會(huì)找到(反射)此頁(yè)面,并在新的選項(xiàng)卡頁(yè)面中打開(kāi)加載此功能。
這里要提到一點(diǎn)不足,對(duì)于ASP.NET,它是被瀏覽器請(qǐng)求執(zhí)行。不同于C/S,可以new一個(gè)窗體,然后Show。我一直在尋找一種方法,可以通過(guò)頁(yè)面的類(lèi)型,來(lái)找到這個(gè)頁(yè)面所在的aspx文件地址,這樣可以省略Function特性的第二個(gè)參數(shù),到目前一直沒(méi)有找到可行的方案。第二個(gè)參數(shù)可以通過(guò)菜單設(shè)計(jì)器來(lái)輔助完成,不過(guò)原理和這里的差不多,也是人工識(shí)別,所以,我直接把地址放在特性參數(shù)中,以用于導(dǎo)航。
第二類(lèi)功能是報(bào)表。先在報(bào)表設(shè)計(jì)器中設(shè)計(jì)此報(bào)表,給予一個(gè)編號(hào),參考如下圖所示
在報(bào)表設(shè)計(jì)窗體中,給予基本的參數(shù)。然后在Web項(xiàng)目的report目錄中,放置報(bào)表文件。理論上,需要支持三大流行的報(bào)表系統(tǒng)。RDLC,微軟客戶端報(bào)表,簡(jiǎn)單,易用,Crystal Report 水晶報(bào)表,功能復(fù)雜強(qiáng)大,Reporting Services 微軟服務(wù)器端報(bào)表。Enterprise Solution Web部分,目前只實(shí)現(xiàn)了RDLC客戶端報(bào)表,其它二項(xiàng)報(bào)表的功能,還有待研究和實(shí)現(xiàn)。這里要提到一點(diǎn),加入一種類(lèi)型的報(bào)表,要實(shí)現(xiàn)如下的基本功能:
1 多語(yǔ)言 基本的中,英,繁體
2 多種版本。Crystal Report 有多種版本,要能識(shí)別各個(gè)版本的報(bào)表文件并加載合適的呈現(xiàn)器(Render)
3 界面輸入與傳值。有的報(bào)表需要傳遞參數(shù),系統(tǒng)要?jiǎng)?chuàng)造界面輸入值,并自動(dòng)的傳入到報(bào)表中
第三類(lèi)功能是自定義查詢。用戶在查詢?cè)O(shè)計(jì)器中設(shè)計(jì)的查詢,Web框架要能解析成界面,呈現(xiàn)給用戶。
在此設(shè)計(jì)的查詢,通過(guò)在快速啟動(dòng)欄中輸入PUPRSQ功能編碼,呈現(xiàn)給用戶如下效果的界面
查詢的結(jié)果,可以導(dǎo)出為EXCEL。關(guān)于如何將query轉(zhuǎn)換為Web界面,在后續(xù)的文章中會(huì)講解原理,在此先略過(guò)。
導(dǎo)航功能的好壞,對(duì)系統(tǒng)的可用性,有一定的影響。試想一下,功能很復(fù)雜的一個(gè)系統(tǒng),用戶要找一個(gè)功能,要找很久都找不到,或是沒(méi)有快捷的途徑找到它,用戶肯定不會(huì)認(rèn)為它好用。其次,快速啟動(dòng)欄的設(shè)計(jì),用一個(gè)功能編碼標(biāo)識(shí)用戶需要的一個(gè)功能模塊,有利于用戶快速執(zhí)行所需要的功能。高級(jí)的用戶不想去樹(shù)節(jié)點(diǎn)中找,則可以此方法執(zhí)行功能。
***,導(dǎo)航菜單是可編輯的,提供一個(gè)菜單編輯器,隨心所欲的設(shè)計(jì)用戶所需要的效果。
到此,相信大家對(duì)“ASP.NET Web開(kāi)發(fā)框架怎么實(shí)現(xiàn)功能導(dǎo)航”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。