ASP.NET 2.0数据教程:给每个部分添加Default.aspx页面

在我们的站点中这个课程被分成不同的分类-Basic Reporting,Filtering,Custom Formatting等等-每个分类有一个文件夹并且有对应课程的aspx页面。并且,每个文件夹里包含一个Default.aspx页面。在这个默认页面中,将显示这个部分的所有课程。比如,我们可以通过BasicReporting文件夹里的Default.aspx页面连接到SimpleDisplay.aspx,DeclarativeParams.aspx和ProgrammaticParams.aspx。这里,我们可以再次使用SiteMap类和一个数据显示控件显示定义在Web.sitemap文件内的站点地图的信息。

成都创新互联长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为四平企业提供专业的成都网站制作、网站设计、外贸网站建设四平网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

让我们再次使用Repeater显示一个无序列表,不过这次我们会显示指南的标题和描述。我们需要在每个Default.aspx页面重复这些标记和代码,我们可以将这个UI逻辑封装成一个User Control。在站点中添加一个名为UserControls的文件夹并添加一个名为SectionLevelTutorialListing.ascx的Web用户控件,它包含一下标记:

Default.aspx页面:向UserControls文件夹里添加新Web用户控件

SectionLevelTutorialListing.ascx

 
 
 
 
  1. < %@ Control Language="C#" AutoEventWireup="true"   
  2. CodeFile="SectionLevelTutorialListing.ascx.cs"   
  3. Inherits="UserControls_SectionLevelTutorialListing" %>  
  4. < asp:Repeater ID="TutorialList" runat="server" EnableViewState="False">  
  5.     < HeaderTemplate>< ul>< /HeaderTemplate>  
  6.     < ItemTemplate>  
  7.         < li>< asp:HyperLink runat="server" 
  8.          NavigateUrl="< %# Eval("Url") %>" Text="< %# Eval("Title")  
  9.          %>">< /asp:HyperLink>  
  10.                 - < %# Eval("Description") %>< /li>  
  11.     < /ItemTemplate>  
  12.     < FooterTemplate>< /ul>< /FooterTemplate>  
  13. < /asp:Repeater> 

SectionLevelTutorialListing.ascx.cs

 
 
 
 
  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Collections;  
  5. using System.Web;  
  6. using System.Web.Security;  
  7. using System.Web.UI;  
  8. using System.Web.UI.WebControls;  
  9. using System.Web.UI.WebControls.WebParts;  
  10. using System.Web.UI.HtmlControls;  
  11.  
  12. public partial class UserControls_SectionLevelTutorialListing : System.Web.UI.UserControl  
  13. {  
  14.     protected void Page_Load(object sender, EventArgs e)  
  15.     {  
  16.         // If SiteMap.CurrentNode is not null,  
  17.         // bind CurrentNode ChildNodes to the GridView  
  18.         if (SiteMap.CurrentNode != null)  
  19.         {  
  20.             TutorialList.DataSource = SiteMap.CurrentNode.ChildNodes;  
  21.             TutorialList.DataBind();  
  22.         }  
  23.     }  

在前面的Repeater例子中我将SiteMap的数据绑定到Repeater上;当然,这个SectionLevelTutorialListing用户控件也将使用这种方法。在Page_Load事件里,有一个检测程序以确保这是否是第一次访问该页面(不是返回)并且这个页面的URL要映射到站点地图中的一个节点。如果页面使用了这个用户控件,那么就没有对应的

< siteMapNode>,SiteMap.CurrentNode会返回null并且将没有数据绑定到Repeater控件。假设我们有一个CurrentNode,我可以将它的ChildNodes集合绑定到这个Repeater。每个部分的Default.aspx页面是这个部分内教程的父节点,这些代码会展示每个部分内教程的连接和描述,下面是屏幕截图:

一旦这个Repeater创建好后,在设计视图里打开每个文件夹的Default.aspx页面,将这个用户控件拖到你要显示的地方。

图14:用户控件已经添加到Default.aspx页面上

图15:Basic Reporting指南的列表

总结

完成站点地图和母板页后,现在我们的教程站点拥有统一的页面布局和导航体系。尽管我们的站点有很多页面,但是我们可以集中的更新站点页面布局和站点导航信息。明确一点,页面布局信息在母板页Site.master中定义,站点地图在Web.sitemap中定义。我们不需要写任何代码就完成了站点页面布局和导航机制,Visual Studio提供了所见即所得的设计时支持。

完成了数据访问层和业务逻辑层并且定义了一个统一的页面布局和站点导航系统,下一步我们将探索通用报表模式。在接下来的三个指南里我们将会看到基本报表任务-用GridView,DetailsView和FormView控件显示从业务逻辑层获取的数据。

【编辑推荐】

  1. ASP.NET 2.0数据教程:给BLL类添加业务规则
  2. ASP.NET 2.0数据教程:通过BLL类访问类型化数据集
  3. ASP.NET 2.0数据教程:创建BLL类
  4. ASP.NET编程中的实用技巧
  5. ASP.NET技巧小结

网站名称:ASP.NET 2.0数据教程:给每个部分添加Default.aspx页面
浏览路径:http://www.hantingmc.com/qtweb/news15/138115.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联