新聞中心
在我們的站點中這個課程被分成不同的分類-Basic Reporting,Filtering,Custom Formatting等等-每個分類有一個文件夾并且有對應課程的aspx頁面。并且,每個文件夾里包含一個Default.aspx頁面。在這個默認頁面中,將顯示這個部分的所有課程。比如,我們可以通過BasicReporting文件夾里的Default.aspx頁面連接到SimpleDisplay.aspx,DeclarativeParams.aspx和ProgrammaticParams.aspx。這里,我們可以再次使用SiteMap類和一個數(shù)據(jù)顯示控件顯示定義在Web.sitemap文件內(nèi)的站點地圖的信息。

成都創(chuàng)新互聯(lián)長期為近千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為四平企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站設計、外貿(mào)網(wǎng)站建設,四平網(wǎng)站改版等技術服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
讓我們再次使用Repeater顯示一個無序列表,不過這次我們會顯示指南的標題和描述。我們需要在每個Default.aspx頁面重復這些標記和代碼,我們可以將這個UI邏輯封裝成一個User Control。在站點中添加一個名為UserControls的文件夾并添加一個名為SectionLevelTutorialListing.ascx的Web用戶控件,它包含一下標記:
Default.aspx頁面:向UserControls文件夾里添加新Web用戶控件
SectionLevelTutorialListing.ascx
- < %@ Control Language="C#" AutoEventWireup="true"
- CodeFile="SectionLevelTutorialListing.ascx.cs"
- Inherits="UserControls_SectionLevelTutorialListing" %>
- < asp:Repeater ID="TutorialList" runat="server" EnableViewState="False">
- < HeaderTemplate>< ul>< /HeaderTemplate>
- < ItemTemplate>
- < li>< asp:HyperLink runat="server"
- NavigateUrl="< %# Eval("Url") %>" Text="< %# Eval("Title")
- %>">< /asp:HyperLink>
- - < %# Eval("Description") %>< /li>
- < /ItemTemplate>
- < FooterTemplate>< /ul>< /FooterTemplate>
- < /asp:Repeater>
SectionLevelTutorialListing.ascx.cs
- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- public partial class UserControls_SectionLevelTutorialListing : System.Web.UI.UserControl
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- // If SiteMap.CurrentNode is not null,
- // bind CurrentNode ChildNodes to the GridView
- if (SiteMap.CurrentNode != null)
- {
- TutorialList.DataSource = SiteMap.CurrentNode.ChildNodes;
- TutorialList.DataBind();
- }
- }
- }
在前面的Repeater例子中我將SiteMap的數(shù)據(jù)綁定到Repeater上;當然,這個SectionLevelTutorialListing用戶控件也將使用這種方法。在Page_Load事件里,有一個檢測程序以確保這是否是第一次訪問該頁面(不是返回)并且這個頁面的URL要映射到站點地圖中的一個節(jié)點。如果頁面使用了這個用戶控件,那么就沒有對應的
< siteMapNode>,SiteMap.CurrentNode會返回null并且將沒有數(shù)據(jù)綁定到Repeater控件。假設我們有一個CurrentNode,我可以將它的ChildNodes集合綁定到這個Repeater。每個部分的Default.aspx頁面是這個部分內(nèi)教程的父節(jié)點,這些代碼會展示每個部分內(nèi)教程的連接和描述,下面是屏幕截圖:
一旦這個Repeater創(chuàng)建好后,在設計視圖里打開每個文件夾的Default.aspx頁面,將這個用戶控件拖到你要顯示的地方。
圖14:用戶控件已經(jīng)添加到Default.aspx頁面上
圖15:Basic Reporting指南的列表
總結(jié)
完成站點地圖和母板頁后,現(xiàn)在我們的教程站點擁有統(tǒng)一的頁面布局和導航體系。盡管我們的站點有很多頁面,但是我們可以集中的更新站點頁面布局和站點導航信息。明確一點,頁面布局信息在母板頁Site.master中定義,站點地圖在Web.sitemap中定義。我們不需要寫任何代碼就完成了站點頁面布局和導航機制,Visual Studio提供了所見即所得的設計時支持。
完成了數(shù)據(jù)訪問層和業(yè)務邏輯層并且定義了一個統(tǒng)一的頁面布局和站點導航系統(tǒng),下一步我們將探索通用報表模式。在接下來的三個指南里我們將會看到基本報表任務-用GridView,DetailsView和FormView控件顯示從業(yè)務邏輯層獲取的數(shù)據(jù)。
【編輯推薦】
- ASP.NET 2.0數(shù)據(jù)教程:給BLL類添加業(yè)務規(guī)則
- ASP.NET 2.0數(shù)據(jù)教程:通過BLL類訪問類型化數(shù)據(jù)集
- ASP.NET 2.0數(shù)據(jù)教程:創(chuàng)建BLL類
- ASP.NET編程中的實用技巧
- ASP.NET技巧小結(jié)
網(wǎng)站題目:ASP.NET 2.0數(shù)據(jù)教程:給每個部分添加Default.aspx頁面
鏈接URL:http://m.5511xx.com/article/cdjdphd.html


咨詢
建站咨詢
