SharePoint开发 - 自定义页面(错误页、登出页)

本文叙述如何自定义SharePoint的固有页面,比较简单,用一句话说就是“做个页面,写一句代码。”

创建SharePoint空解决方案,添加Layouts映射文件夹,添加页面文件error.aspx和signout.aspx。

error.aspx

[html] view plaincopyprint?

  1. <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
  2. <%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
  3. <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
  4. Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  5. <%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  6. <%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
  7. <%@ Import Namespace="Microsoft.SharePoint" %>
  8. <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  9. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="error.aspx.cs" Inherits="CustomPages.error"
  10. DynamicMasterPageFile="~masterurl/default.master" %>
  11. <asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
  12. </asp:Content>
  13. <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
  14. 出现错误,请联系管理员
  15. <!--自定义错误页面,在此页面写代码-->
  16. </asp:Content>
  17. <asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
  18. 应用程序页
  19. </asp:Content>
  20. <asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea"
  21. runat="server">
  22. 我的应用程序页
  23. </asp:Content>

signout.aspx

[html] view plaincopyprint?

  1. <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
  2. <%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
  3. <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
  4. Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  5. <%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  6. <%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
  7. <%@ Import Namespace="Microsoft.SharePoint" %>
  8. <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  9. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="signout.aspx.cs" Inherits="CustomPages.signout"
  10. MasterPageFile="~/_layouts/simple.master" %>
  11. <asp:Content ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
  12. <SharePoint:EncodedLiteral runat="server" Text="<%$Resources:wss,signout_pagetitle%>"
  13. EncodeMethod=‘HtmlEncode‘ />
  14. </asp:Content>
  15. <asp:Content ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">
  16. <SharePoint:EncodedLiteral runat="server" Text="<%$Resources:wss,signout_pagetitle%>"
  17. EncodeMethod=‘HtmlEncode‘ />
  18. </asp:Content>
  19. <asp:Content ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
  20. <script type="text/javascript">
  21. function ULSd63() { var o = new Object; o.ULSTeamName = "Microsoft SharePoint Foundation"; o.ULSFileName = "SignOut.aspx"; return o; }
  22. function _spBodyOnLoad() {
  23. ULSd63: ;
  24. window.close();
  25. }
  26. </script>
  27. </asp:Content>
  28. <asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server">
  29. <asp:Label ID="lbPageDescription" Text="<%$Resources:wss,signout_pagedescription%>"
  30. runat="server" />
  31. </asp:Content>

自定义页面的好处是可以处理一些自己实际中需要的操作。

然后添加feature,激活和取消激活事件

[csharp] view plaincopyprint?

  1. public override void FeatureActivated(SPFeatureReceiverProperties properties)
  2. {
  3. SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
  4. if (null != webApp)
  5. {
  6. webApp.UpdateMappedPage(SPWebApplication.SPCustomPage.Error, "/_layouts/SP_MIP/CustomPages/error.aspx");
  7. webApp.UpdateMappedPage(SPWebApplication.SPCustomPage.Signout, "/_layouts/SP_MIP/CustomPages/signout.aspx");
  8. webApp.Update(true);
  9. }
  10. }
  11. public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
  12. {
  13. SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
  14. if (null != webApp)
  15. {
  16. webApp.UpdateMappedPage(SPWebApplication.SPCustomPage.Error, null);
  17. webApp.UpdateMappedPage(SPWebApplication.SPCustomPage.Signout, null);
  18. webApp.Update(true);
  19. }
  20. }
时间: 2024-11-10 00:14:42

SharePoint开发 - 自定义页面(错误页、登出页)的相关文章

错误:当你使用id作为sharepoint的自定义页面的查询参数时,总会提示项目不存在!

No item exists at http://SERVER/SITE/mypage.aspx?ID=1. It may have been deleted or renamed by another user Email Print Source: Microsoft Support RAPID PUBLISHING RAPID PUBLISHING ARTICLES PROVIDE INFORMATION DIRECTLY FROM WITHIN THE MICROSOFT SUPPO

SharePoint 2010 自定义页面出现“项目可能已被其他用户删除或重命名”问题跟踪

异常详细信息: Microsoft.SharePoint.SPException: 位置 http://portal/Pages/ShowArticle.aspx?id=19&mylist=866e1c61-f4a5-46ec-9773-9bb1caf1109c 处不存在任何项目.项目可能已被其他用户删除或重命名. 解决方式:自定义的页面中,参数名称不能使用ID,List,View等系统已经使用的.调试的时候不会出现什么症状,但是实际部署好后,会随机出现以上错误,请小心使用. 堆栈跟踪: [SP

SharePoint开发 - 自定义导航菜单(一)菜单声明与配置

本篇描述自定义sharepoint菜单的一种方式,自定义菜单适用于一些门户等需求的网站 自定义的菜单有自己的数据源,可以是数据表,可以是XML,本篇叙述的是采用XML数据源作为菜单的声明定义部分,将XML以文件的格式保存到网站中自己创建的配置文档库中 XML菜单的格式形如下面的格式,其中有菜单标题title属性,有菜单所属的权限用户组SPGroups属性,有菜单的链接url属性,实际应用中可以添加更多的字段. <SiteMap> <SiteMapNode title="我的项目

SharePoint开发 - 自定义导航菜单(二)母版页的菜单应用

接上篇点击打开链接 本篇叙述在母版页中应用之前的配置信息生成菜单,主要涉及到母版页的自定义,并应用了第三方控件库DevExpress,感兴趣的可以看看,这套东西很强大,戳这里 新建一个SharePoint项目,添加一个模块Module.Module会自动附带一个sample.txt的文件和一个Elements.xml的定义文件.我们删除掉没用的sample.txt,修改Elements.xml为如下所示 <?xml version="1.0" encoding="utf

SharePoint开发 - 自定义导航菜单(三)附其他代码

接上篇点击打开链接 LeftNavGroupTemplate.cs internal class LeftNavGroupTemplate : ITemplate { // Fields private int index; private string xml; // Methods public LeftNavGroupTemplate(string _navXml, int _groupIndex) { this.xml = _navXml; this.index = _groupInde

【试水CAS-4.0.3】第08节_CAS客户端配置单点登出

本文内容包括配置单点登出.登出后自动跳转指定资源.CASServer禁用单点登出等 /** * @see ------------------------------------------------------------------------------------------------------------------------ * @see CAS客户端配置单点登出 * @see 与单点登录相对应,通过CASServer登出所有的CASClient,登录的URL是/login,

【SSO单点系列】(3):CAS4.0 之自定义返回登出页面

一.登出实现返回自定义页面 服务端修改 cas-servlet.xml <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction" p:servicesManager-ref="servicesManager" p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"

SharePoint 2010 自定义基于SQL表单身份验证的登录页面

当为SharePoint 2010 WebApplication配置了以混合模式(FBA Authentication和Windows Authentication)登陆后,我们当然可以自定义登陆页面(Sign in Page). 一.登陆SharePoint 2010 Central Administratio后,找到对应的WebApplication,指定其Sign in Page Url即可,如下所示: 二.创建自定义登录项目 首先,为了创建自定义的登陆页,我选择了Application

MVC 实现自定义404错误页

直接进入正题. 在HomeController中有一个NotFound的Action方法. public ActionResult NotFound() { return View(); } 对应的视图 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content=&