• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 在ASP.NET 2.0中操作数据之三:创建母版页和站点导航

在ASP.NET 2.0中操作数据之三:创建母版页和站点导航

作者:heker2007 字体:[增加 减小] 来源:互联网 时间:2017-05-11

heker2007通过本文主要向大家介绍了在ASP.NET 2.0中操作数据之三:创建母版页和站点导航等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

导言

  通常,用户友好的个性化站点都有着一致的,站点统一的页面布局和导航体系。Asp.net 2.0引入的两个新特性给我们在统一站点的页面布局和站点导航上提供了简单而有效的工具,它们是母板页和站点导航。母板页允许开发者创建统一的站点模板和指定的可编辑区域。这样,aspx页面只需要给模板页中指定的可编辑区域提供填充内容就可以了,所有在母板页中定义的其他标记将出现在所有使用了该母板页的aspx页面中。这种模式允许开发者可以统一的管理和定义站点的页面布局,因此可以容易的得到拥有统一的视觉和感觉的页面并且还易于更新。

  站点导航系统允许开发者定义站点地图并提供了API以便通过程序查询站点地图信息。新的导航控件包括Menu,TreeView和SiteMapPath,这样可以很容易的在一个一般的导航用户界面元素里呈现全部或者部分站点地图。我们将使用默认的站点导航提供者,这意味着我们的站点地图将定义在一个xml格式的文件中。

  为说明这些观念并且使我们的教程的示例站点可用性更佳,让我们通过本次课程定义一个站点统一的页面布局,实现一个站点地图,并且添加导航UI。在这个课程结束时我们的课程示例站点就拥有一个优美的设计效果了。

http://files.weikejianghu.com/file_images/article/201604/201604290859521.png

图1:本课程的最终成果

步骤1:创建母板页

  第一步是为我们的站点创建母板页。到目前为止我们的站点只有一个类型化的DataSet(Northwind.xsd,位于App_Code文件夹),业务逻辑层类库(ProductsBLL.cs,CategoriesBLL.cs等等,这些都在App_Code文件夹里),数据库(NORTHWIND.MDF,位于App_Data文件夹),配置文件(web.config),和一个CSS文件(Style.css)。
我整理这些页面和文件以说明前面两次课程中介绍的数据访问层和业务逻辑层将会在以后课程的更多细节中重用这些示例。

http://files.weikejianghu.com/file_images/article/201604/201604290859522.png

图2:我们项目中的文件

  要创建一个母板页,用右键点击解决方案管理器中的项目名称并选择添加新项。然后从模板列表窗口中选择母板类型并且命名为Site.master

http://files.weikejianghu.com/file_images/article/201604/201604290859563.png

图3:添加一个母板页到站点中

  在母板页中定义站点统一的页面布局。你可以用设计视图定义你需要的布局或者控件,你还可以手动的在代码视图中添加标记。在我们的母板页中使用了定义在外部文件Style.css中的层叠样式表来定义位置和风格。也许你不知道下面这些标记怎样显示,样式表规则定义了导航用的<div>标签中的内容绝对定位在页面的左边并且宽度固定为200像素。

Site.master

<%@ Master Language="C#" AutoEventWireup="true"
 CodeFile="Site.master.cs" Inherits="Site" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
 <title>Working with Data Tutorials</title>
 <link href="Styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
 <div id="wrapper">

 <form id="form1" runat="server">

  <div id="header">
  <span class="title">Working with Data Tutorials</span>
  <span class="breadcrumb">
   TODO: Breadcrumb will go here...</span>
  </div>

  <div id="content">
  <asp:contentplaceholder id="MainContent"
   runat="server">
   <!-- Page-specific content will go here... -->
  </asp:contentplaceholder>
  </div>

  <div id="navigation">
  TODO: Menu will go here...
  </div>
 </form>
 </div>
</body>
</html>
</div>

  一个母板页定义了固定的布局和可以被那些使用了母板页的aspx页面填充的可编辑区域
这个可编辑区域是通过ContentPlaceHolder控件显示,位于<div>标记中。我们的母板页中只有一个ContentPlaceHolder(MainContent),但是母板页中是可以包含多个ContentPlaceHolder控件的。

  输入上面的标记,切换到设计视图观察母板页的布局。所有的使用了这个母板页的aspx页面都会有这样统一的布局,而MainContent区域是留给aspx页面展现自己才华的地方。

http://files.weikejianghu.com/file_images/article/201604/201604290859564.png

图4:在设计视图中显示的母板页

步骤2:给站点添加一个主页

  定义母板页后,我们准备给站点添加一些aspx页面。让我们从添加我们的首页Degault.aspx开始吧。在解决方案管理器中右键点击项目名称并且选择添加新建项目。从模板列表中选择Web Form选项并且命名为Default.aspx。并且,勾上“选择母板页”的复选框。

http://files.weikejianghu.com/file_images/article/201604/201604290859565.png

图5:添加一个新Web Form并且勾上“选择母板页”的复选框

点击确定按钮后,将会询问你新建的这个aspx页面使用哪个母板页。也许你有多个母板页在你的项目中,但是我们只有一个。

http://files.weikejianghu.com/file_images/article/201604/201604290859576.png

图6:选择你要使用的母板页

选择母板页后,新建的aspx会包含下面这些标记:

Default.aspx

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
 CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent"
 Runat="Server">
</asp:Content>
</div>

  在@Page指令中有一个指向母板页的引用(MasterPageFile=”~/Site.master”),并且aspx页面的标记中包含了一个Content控件对应母板页中定义的ContentPlaceHolder控件,这个Content控件的ContentPlaceHolderID属性映射到指定的ContentPlaceHolder控件。你可以在Content控件中放置你想显示在相应ContentPlaceHolder控件位置的标记。

设置@Page指令的Title属性为Home并且添加一些欢迎词到Content控件中:

Default.aspx

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
 CodeFile="Default.aspx.cs" Inherits="_Default" Title="Home" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent"
 Runat="Server">
 <h1>Welcome to the Working with Data Tutorial Site</h1>

 <p>This site is being built as part of a set of tutorials that
illustrate some of the new data access and databinding features in
ASP.NET 2.0 and Visual Web Developer.</p>

 <p>Over time, it will include a host of samples that
demonstrate:</p>

 <ul>
 <li>Building a DAL (data access layer),</li>
 <li>Using strongly typed TableAdapters and DataTables</li>
 <li>Master-Detail reports</li>
 <li>Filtering</li>
 <li>Paging,</li>
 <li>Two-way databinding,</li>
 <li>Editing,</li>
 <li>Deleting,</li>
 <li>Inserting,</li>
 <li>Hierarchical data browsing,</li>
 <li>Hierarchical drill-down,</li>
 <li>Optimistic concurrency,</li>
 <li>And more!</li>
 </ul>
</asp:Content>
</div>

@Page指令中的Title属性允许我们可以在aspx页面定义标题,即使母板页中已经定义了<title>元素。我们还可以使用Page.Title的编程方式设置页面的标题。需要注意的是母板页中引用的样式表(如Style.css)会自动校正以应用到每个aspx页面中,这是与aspx页面的目录和母板页目录之间的关系无关。

  切换到设计视图我们会看到我们的页面将在浏览器中的显示效果。注意:在设计视图里,aspx页面的内容只有可编辑区域可以被修改,在母板页定义的非ContentPlaceHolder部分标记被显示成灰色

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11垃圾代码二三行 ASPX小马
  • 2017-05-11linq 查询 Linq 高级查询实例代码
  • 2017-05-11ASP.NET页面缓存常见的4种方式
  • 2017-05-11ASP.NET实现根据IP获取省市地址的方法
  • 2017-05-11asp.net生成字母和数字混合图形验证码
  • 2017-05-11Asp.Net实现404页面与301重定向的方法
  • 2017-05-11asp.net 中将表单提交到另一页 Code-Behind(代码和html在不同的页面)
  • 2017-05-11C#中OpenFileDialog和PictrueBox的用法分析
  • 2017-05-11NopCommerce架构分析之(五)Model绑定Action参数
  • 2017-05-11在ASP.NET 2.0中操作数据之四十九:为GridView控件添加RadioButton

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net url重写后页面回传问题
    • 根据控件Id得到控件并对该控件进行操作
    • 剖析Asp.Net Web API路由系统---WebHost部署方式
    • ASP.NET DataTable去掉重复行的2种方法
    • 在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据
    • Asp.net清空控件值的方法(可自定义控件类型)
    • asp.net access web.config denied
    • ASP.NET 2.0 中收集的小功能点(转)
    • ASP.NET笔记之 Repeater的使用
    • asp.net MaxLengthValidator 最大长度验证控件代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有