SiteMapProvider=\id=\runat=\
StartingNodeUrl=\
要应用其他样式,就把cssclass样式都去掉,修改应用到母版页的样式表就可以了,另外,注意DataSourceID,导航栏的数据来源是可以设定,例如从xml中获取数据;StaticDisplayLevelsMaximumDynamicDisplayLevels也很重要,可以用来修改导航栏的样式和展现方式。
6、
放置水平导航栏一行内容的占位符,在PlaceHolderHorizontalNav外面一层。 7、
页面编辑控件,当页面进入编辑页面模式时使用(当我们点SiteActions,EditPage后) 8、
在WindowsSharePointServices中默认为空,用于附加的页面编辑控件的占位符。 9、
左侧的图片的占位符。
10、
Title区左侧边框的占位符。
11、
TitleBreadcrumb页面导航区的占位符。
12、
Breadcrumb区下面的标题的占位符。
13、
一个放置页面级命令的地方,比如在WIKI站点里的EditPage,History,IncomingLinks的占位符。 14、
Title区右侧空白的占位符。
15、
TitleAreaSeparator区的占位符。
16、
左侧导航区数据源的占位符。
17、
在页面中有日历时为其显示一个日期选择框的占位符。
18、
左侧导航区上面的导航区的占位符。
19、
左侧导航区的占位符。
20、
左侧导航区下面的动作区的占位符。
21、
左侧导航区的宽度的占位符。
22、
左侧导航区的边框元素的占位符。
23、
页面body的边框元素的占位符。
24、
页面描述区的占位符。
25、
页面主体的占位符。
26、
页面body的右边空白的占位符。
27、
这是页面中必备的\安全组件的占位符。
28、
页面底部需要的一块特殊内容的占位符。
29、
附加在页面顶部的body中的样式的占位符。
30、
TitleArea附加的样式的占位符。
31、
母版页中所有的元素大概分为2类,第一种是必须的内容类型,第二种是可选的内容类型. 1. 必须的内容类。
必须的内容类型就是,没有这种元素或标签,页面就会报错,所以在做母版页的时候,这种元素或标签必须加上去。
2. 可选的内容类型。
SharePoint控件介绍
Web控件 SharePoint:ScriptLink SharePoint.CustomJSUrl 说明 使用页引用的资源(如脚本文件)呈现页 创建对包含要在页面上运行的脚本的自定义ECMAScript(JavaScript、JScript)文件的引用 SharePoint.DelegateControl 能够呈现ASP.NET控件的通用控件。委托控件可使其子候选控件变得可插入和可替换。 SharePoint.SPShortcutIcon SharePoint.SPPageManager SharePoint.SPHelpPageComponent 表示快捷方式图标 管理页面组件 公开继续的页面组件 SharePoint.CssRegistration 注册一个CSS文件。CssLink对象读取此注册以将LINK元素插入结果HTML页,并应用外部样式表。 WebPages.SPWebPartManager 管理所有Web部件控件、功能和网页上发生的事件。 SharePoint.EncodedLiteral 将类与SPEncodeMethod枚举的成员结合使用。从该枚举选择的值可控制类在呈现控件时对文本属性进行编码的方式。EncodeLiteral类使用由SPHttpUtility类公开的方法对文本进行编码。SPEncodeMethod枚举中包含的每个值将分别映射到由SPHttpUtility类公开的各个方法。 SharePoint:SPLinkButton SharePoint:SiteLogoImage 表示“链接”按钮。 从Image类继承,使您能够有条件地将当前网站徽标实例化为图像Web控件。首先,该控件从当前请求上下文中获取一个SPWeb以查看SiteLogoUrl属性是否为null或为空。如果存在一个值,则该值将用于图像呈现。如果不存在值,则查询SiteLogoImage类中LogoImageUrl属性来获取指向网站徽标的URL,从而使您能够提供备用图像URL。如果这两个属性都为null或为空,则使用标准blank.gif占位符。 SharePoint:MenuItemTemplate SharePoint:SPRibbonPeripheralContent SharePoint:SPRibbon SharePoint.UpdatePanel PublishingNavigation:PortalSiteMapDataSource SharePoint:SPHierarchyDataSourceControl SharePoint:SPTreeView
表示可以在下拉菜单中创建项的控件 公开功能区用户界面的设计控件、标记控件、视图状态控件以及相关的设计和行为控件。. 表示页面上的功能区的控件。 表示在不回发的情部下,部分呈现面的和部分 表示与PortalSiteMapProvider类一起使用的ASP.NET分层数据源 提供SharePoint网站、列表和文件夹的分层视图。 在树结构中显示分层数据。 SharePoint内容页开发
SharePoint中主要有两种类型的页面,分别是网站页面和应用程序页面。下面的主题将讨论这两种类型的页面之间的区别。应用程序页面和网站页面都从同一母版页继承其布局。
(1)网站页面
网站页面是由最终用户创建、编辑和自定义的页面。它们主要用于网站中的内容。网站页面具有两种类型 - 标准页面(派生自WikiEditPage)和 Web 部件页(派生自WebPartPage)。标准页面包含文本、图像、Web 部件及其他元素。Web 部件页包含 Web 部件区域中的 Web 部件。它们具有使用 Web 部件区域的预定义布局。这两种类型的网站页面都是使用 Web 浏览器或 Microsoft SharePoint Designer 进行编辑的。
网站页面是通过存储在前端 Web 服务器的文件系统上的模板页面设置的。在设置网站时,SharePoint Foundation 会创建指向文件系统上的页面模板实例的指针。这样,SharePoint Foundation 就可以避免重复创建每次创建网站时都要设置的页面的副本。
当用户自定义网站页面时,该页面的模板随后会存储在内容数据库中。每次用户请求该页面时,都会从内容数据库中检索它。不过,可以通过 Web 浏览器或 SharePoint Designer 之类的工具将自定义页面重置为原始模板页面。
网站页面是可以通过SharePoint Designer来编辑的页面,它的增加、删除、修改并不能在物理文件系统中跟踪到,而是在Content DB中。
Site Pages 两个重要的概念:
Ghosted or Uncustomized Page. 页面都是通过WFE文件系统中的页面模板来处理的 Unghosted or Customized Page. 页面被定制过,存储在数据库当中。 在述定制和未定制页面之前我们先要了解另一个概念-虚拟文件系统。
Virtual File System in SharePoint Site.(虚拟文件系统)
在讲述虚拟文件系统的时候,我们先了了解一下.net的是如何发起一个请求,并让我们的网站程序做处理的。 当用户在网络上发起一个web访问,经过了DNS的指引,到达了我们的IIS服务器。(有人可能会问,IIS怎么知道请求了呢。对于IIS来说,它主要依赖一个叫HTTP.SYS的内置驱动来临听来自于外部的HTTP求请。在操作系统启动时,IIS会在HTTP.SYS中注册自已的虚拟路径。)IIS服务器会检查一下我们的请求后缀。如果是一些普通的扩展名,比如(.jpg、.jif、.htm、.html)IIS会直接查找一个系统文件,并且把这些资源返回,如果不是,IIS会把这个请求交给asp_isapi.dll来处理。这时候会创建一个w3wp.exe的进程,并加载.net运行时(HttpRunttime).net运行时会创一系列的对像。比如,HttpRequest,HttpResponse,HttpSessionsate,HttpApplicationsate。为了方便使用,他还会创建一个上下文对使HttpContext。把这些对像做为一个属性,付给HttpContext。这时候,他还会创那建一个httpapplication的对像。HttpApplication对像调用HttpApplication.ProcessRequest,触发处理事件。在这些事件当中的处理我们请求的页面或资源,并返回。
宿主环境如下图
管道流程图
接下来看看,sharepoint的管道流程图:
哪么我们的虚拟文件系统在哪里呢?
虚拟文件系统是通过SPRequestModule引入的。在SPRequestModule的OnInit中最关健的一句。 SPVirtualPathProvider provider2=new SPVirtualPathProvider(); HostingEnvironment.RegisterVirtualPathProvider(Provider2);
哪虚拟文件系统都做了此什么事情呢,如下图:
Figure: 页面被定制了从数据库中取回,页面没定制从WFE文件系统中返回页面。
注: Virtual Path Provider 的概念是从.NET 2.0开始有的,SharePoint 开发团队实现了自己的 SPVirtualPathProvider。
简单的讲就是 File System 和 Content DB 之间进行了映射关系,这种关系由Virtual Path Provider来维护。
如果页面进行定制,这个时候整个页面会存储到数据库当中,当你再次访问这个被定制的页面的时候就会额外增加一个页面的实例,这也是Unghosted Page不足之处,影响性能。
如果页面没有进行定制,所有对该页面的请求,实际上是有存储在WFE文件系统的模板来进行处理。 Tip: SPFile 类中有一个CustomizedPageStatus属性,这个属性是基于 SPCustomizedPageStatus, 其中有Uncustomized, Customized 和 None,这三个值。Sitepage 在ghosted的状态就是UnCustomized, 当sitepage 被定制后变成 customized。 注意的是NONE值, 这表示如果页面是动态不依赖页面模板创建的时候,这个时候页面的状态就是NONE了。如用代码,或者SPD创建的页面。 C#代码使用规则
下面是在网站页面上使用服务器端代码的一般规则。
? ?
如果页面未经自定义,则该页面将支持服务器端代码。
如果页面经过自定义,服务器端代码将不会运行,并且该页面将不会呈现。这包括页面本身的代码隐藏。
管理员可以在 web.config 文件中添加 PageParserPath 设置,以允许服务器端代码在存储在指定路径的页面上运行。这可以是单个特定页面,也可以是整个目录的页面。 下面的示例演示使用通配符的 PageParserPath 设置:
VirtualPath=\CompilationMode=\AllowServerSideScript=\IncludeSubFolders=\
(2)应用程序页面
应用程序页面用于支持 SharePoint Foundation 中的应用程序实现,应用程序页派生自layoutspagebase。应用程序页面存储在前端 Web 服务器的文件系统上%ProgramFiles%\\Common Files\\Microsoft Shared\\web server extensions\\14\\TEMPLATE\\LAYOUTS 目录中,并且 Web 应用程序中的每个网站都有应用程序页面。此文件夹映射到称为 _layouts 的 Internet Information Services (IIS) 虚拟目录中。每个网站和子网站将可以通过使用 _layouts 虚拟目录来访问应用程序页面。例如http://myserver/_layouts/settings.aspx 和 http://myserver/subsite/_layouts/settings.aspx 访问前端 Web 服务器上的同一应用程序页面,这与网站页面
不同,网站页面是指定网站的实例。
应用程序页面不存在与网站页面相同的限制。它们允许内嵌代码且不存在任何限制。不过,它们不能使用动态 Web 部件或 Web 部件区域,也不能使用 SharePoint Designer 进行修改。SharePoint Foundation 不支持修改默认应用程序页面。可以将自定义应用程序页面添加到 _layouts 文件夹内的子目录中。
应用程序的优缺点
优点:Application Page 的性能较好, 因为不涉及到页面在数据库中存放。
缺点:应用程序页面共享_layouts路径,不够灵活。不能像网站页只备份和恢复网站备份就可以部署到别的机器,而必须通过,拷贝或场部署才能迁移到另一台机器部署。(缺点说得稍微迁强一点,路径下可以分文件夹实现不同页面类型的管理,至于部署,拷贝我觉得更快)。
SharePoint web部件开发
webPart是一种特殊的web control控件,他被部署在webpartzone控件内。
Sharepoint 的webpart是基于asp.net 2.0的。 由下图,可以看到webpart的续承关系。
要想在我们的网站页面上放置一个webpart,必须先放置spwebpartzone控件。然后还在再放置一个spwebpartmanager的控件,而且一个页面只有放一个spwebpartmanager的控件,但却可以放多个spwebpartzone控件。 Webpart从开发方式,一般分为两类.一种就是纯代码的的webpart,一种是带有.ascx文件的webpart,为了区分我们把后者也称为quick part。
本文来源:https://www.bwwdw.com/article/9pur.html
Top