[習題]TreeView、Menu、SiteMapPath #3 -- (會員登入)透過DropDownList控制TreeView與不同的 Sitemap檔

題 目:
透過下拉式選單(DropDownList),挑選 任一個Sitemap檔,
畫面的TreeView就會立刻變化。

這個範例可以應用在哪裡呢?

可以用在會員登入。
@站長級的會員,登入之後,可以透過上述範例,看見完整的 TreeView功能列表
@一般會員,登入之後,可以看見少部分的TreeView功能列表

很久以前就發表過相關的範例了,建議初學者依照順序來練習這個習題

第一篇是初學者入門。[習題]TreeView、Menu、SiteMapPath #0,巡覽控制項入門(書本文章分享)

以下兩個範例有一點點的「小」難度,但不用寫程式,光靠設定就能搞定。

      [習題]TreeView、Menu、SiteMapPath #1----權限控管,搭配Login控制項

      [習題]TreeView、Menu、SiteMapPath #2 --多國語系 /當地語系 / Localization

 

這些程式範例其實早就寫好了,但為何出書的時候沒有放進書本裡面呢?

      1.  書本篇福不夠放了。

      2. 把範例寫成文章,要花很長的時間(寫一章、抓圖大約要兩個工作天)

於是手邊很多範例,但沒有辦法寫成文章,把步驟講得很詳細。

這次要公開的範例,是以前一個突發奇想。

「這樣作行不行呢?」.....於是我自己動手找答案

 

題      目:

      透過下拉式選單(DropDownList),挑選 任一個Sitemap檔,

      畫面的TreeView就會立刻變化。

 

請先看看執行成果:

           

 

     

 

==================================================================================

該怎麼做呢?

 

因為 TreeView這種控制項,事先的設定滿多的。

我們要先把環境設定好,才會去寫程式

 

<<環境設定>>

1.  先自己寫好三個 .Sitemap檔案,裡面其實是XML格式,很簡單。(以下只列出第一個檔案的內容)

     

        各位可以發現,我已經設定了三個「內容不同」的 .sitemap檔案囉~

 

2. 接下來的步驟,最重要!!!

      市面上幾本書都沒有強調這一點,所以要特別小心。

      我們要在 Web.config檔案裡面,把三個已經完成的 .sitemap檔案,寫進 <siteMap>設定裡面。

     

==================================================================================

不要急,把上面的環境設定好之後,才會寫程式。

 

<<畫面與程式>>

 

 .aspx的畫面設計如下,很簡單,

只有一個 DropDownList,搭配 TreeView + SiteMapDataSource而已

01     <form id="form1" runat="server">
02         <div>
03     
04
05             需要自己手動寫程式 &amp; 搭配 Web.Config檔案<br />
06     
07
08     選擇不同的檔案,就會出現不同導覽列:
09     <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
10                 <asp:ListItem Value="test1">1_test1.sitemap(預設值,寫在Web.Config裡面)</asp:ListItem>
11                 <asp:ListItem Value="test2">2_test2.sitemap</asp:ListItem>
12                 <asp:ListItem Value="test3">3_test3.sitemap</asp:ListItem>
13     </asp:DropDownList>
14             <br />
15             <br />
16         
17         <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" ShowLines="True">
18         </asp:TreeView>
19         
20         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
21         </div>
22     </form>

 

後置程式碼(.aspx.vb檔)也沒什麼,只有一點小程式

01     Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
02
03         Select Case DropDownList1.SelectedValue
04             Case "test1"
05                 SiteMapDataSource1.SiteMapProvider = "test1"
06                 '---- 需要跟Web.Config檔案內的設定值,彼此搭配
07                 '---- <add name="test1" type ="System.Web.XmlSiteMapProvider" sitemapfile="test1.sitemap" />
08
09             Case "test2"
10                 SiteMapDataSource1.SiteMapProvider = "test2"
11
12             Case "test3"
13                 SiteMapDataSource1.SiteMapProvider = "test3"
14         End Select
15
16     End Sub

 

完成了,其實並不難。

只是 TreeView + SitemapDataSource的設定,比較瑣碎而已。

當初看了聖殿祭司的書,他是靠寫程式來控制,我覺得對初學者來說太難了。

就想做一個「盡量只靠設定,少寫程式的版本」來完成,於是有了上述的範例。

 

上一篇文章(學習(發問)的態度,決定一切#3 -- 到底想問甚麼?)罵了人,

我自己遇見「這樣做行不行?」的問題時,會盡量自己動手做,找結果。

就算失敗,「經驗」也很難得!!

 

 

 這個範例可以應用在哪裡呢?

 

可以用在會員登入。

  • 站長級的會員,登入之後,可以透過上述範例,看見完整的 TreeView功能列表
  • 一般會員,登入之後,可以看見少部分的TreeView功能列表

 因為功能列表不會經常變化,所以後續維護應該也不會太花時間吧。

這個範例,對於初學者來說,應該是很實用的功能囉。

 

 

 

 

 

 

 

 

 

 

 

今日值班正妹: 台灣名模  Liz

              

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75~80hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

         累積時數約 75~ 80小時...... 第一天(5.5小時)完整內容,"免費"讓您評估