介绍:SharePoint应用程序页,也就是_layouts路径下的aspx页面,服务器C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS下,如我们常见的settings.aspx和viewlsts.aspx页面,就是典型的Application Pages。

下面,我们就一起写一个获取列表的Application Pages:

步骤一 打开VS2008,新建一个项目,如下图:

步骤二 创建文件夹层次,添加Microsoft.sharepoint.dll,添加aspx页面,并添加强命名标记,因为将来生成的dll文件,是要放到GAC里面的,所以必须有强命名。如下图:

步骤三 添加copy.bat,这个是可选的,作用主要是把生成的Dll文件,自动拷贝到GAC;生成的aspx页面,自动拷贝到Layouts下;然后,重新启动iis。

Copy.bat的详细内容是

@echo off

SET TEMPLATE="c:\program   files\common files\microsoft shared\web server extensions\12\Template"

Echo Copying MyAppPages.dll to GAC

"C:\Program Files\Microsoft   SDKs\Windows\v6.0A\Bin\gacutil.exe" -if bin\MyAppPages.dll

Echo Copying files to TEMPLATES   directory

xcopy /e /y TEMPLATE\* %TEMPLATE%

iisreset

步骤四 修改前台代码,引用application.master,Layouts下面的页面,基本上都是引用这个系统母版页,当然也有特别的,引用dialog.master等的,但是这里面的页面,一定不要用designer打开并保存,可以用VS或者记事本比较好,否则打开即使不修改保存后,依然报错。

<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" AutoEventWireup="true"   CodeBehind="BackManages.aspx.cs"   Inherits="BackManages,MyAppPages,   Version=1.0.0.0, Culture=neutral, PublicKeyToken=46fe2c2183412eb6"   %>

添加PlaceHolderMain节点,添加我们需要展现列表的Gridview。熟悉SharePoint的人,对Placeholdermain节点一定不会陌生。

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain"   runat="server"   >

<asp:GridView ID="GridView1"   runat="server">

</asp:GridView>

</asp:Content>

步骤五 引用头文件,继承LayoutsPageBase,编写我们的代码。Layouts下面的应用程序页,都需要继承LayoutsPageBase来进行开发,我没有加命名空间,把它删掉了,这个页面在2007上非常矫情,可能也是自己没有彻底摸透,只要修改少有不当,就会报错,所以编写的时候,注意一下。

using Microsoft.SharePoint;

using Microsoft.SharePoint.WebControls;

public partial class   BackManages :LayoutsPageBase

{

protected void   Page_Load(object sender, EventArgs e)

{

DataTable dt = new DataTable();

dt.Columns.Add("标题");

dt.Columns.Add("其他");

SPSite site = SPContext.Current.Site;

SPWeb web = site.OpenWeb();

SPListCollection ListC = web.Lists;

foreach (SPList   list in ListC)

{

DataRow   dr = dt.NewRow();

dr["标题"] = list.Title.ToString();

dr["其他"] = list.DefaultViewUrl.ToString();

if   (dr["其他"].ToString().Contains("Lists"))

{

dt.Rows.Add(dr);

}

}

GridView1.DataSource = dt;

GridView1.DataBind();

}

}

步骤六 生成,在IIS打开我们的Application Pages,看看展现效果吧,如下图:

总结 我创建的Application Pages页面,基本上就是这样了,只是一个简单的例子,当然,如果需要可以开发更复杂的页面,也可以重写SharePoint原来的功能,这些就要看开发者自己的需求了。

*************************************************************************************

作者:霖雨 出处:http://www.cnblogs.com/jianyus 本文版权归 霖雨和博客园共有,欢迎转载,但请注明出处。

SharePoint2007 开发部署Application Pages的更多相关文章

  1. SharePoint Site Pages & Application Pages

    转:http://www.wcode.net/plus/view.php?aid=1582071 SharePoint一个很重要的概念就是Site Pages和Application Pages.接触 ...

  2. 在微服务系统开发部署中使用Azure RBAC自定义角色

    Azure的官方文档介绍了如何创建用于Azure基于角色的访问控制的自定义角色(RBAC Role). 我们也可以根据同样的原理把RBAC细粒度资源管理运用于微服务产品的开发部署中.(https:// ...

  3. 让开发部署提速 8 倍,我参与贡献这款 IDE 插件的全过程

    如何像参与开源那样,去参与一款 IDE 插件的设计? 作为一款 IDE 插件的使用者,我是否能决定下一个版本的功能? 自从产品经理银时小伙和他的开发小哥们在去年12月发布 Cloud Toolkit( ...

  4. 2022最新IntellJ IDEA诺依开发部署文档

    前景提示 若伊是国内一款很好的开源项目,非常的便于学习,而且它是开源免费的,但是,它的开发部署文档实在是没法按照那个文档,快速高效的在本地搭建一套可以运行的项目,对于学习开发和使用实在是一大难题,为此 ...

  5. 2022最新IntellJ IDEA的zheng开发部署文档

    目录 前景提示 一.环境整合 构建工具(参考工具部署方式) 二.git 导入编译器 三.模块描述浅析 四.配置文档 1.总配置 2.数据库配置 3.密码设置 4.配置建议 五.在IDEA中执行MySQ ...

  6. 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了 ...

  7. 在SharePoint2010中用out-of-box的方式自定制Application Pages(AccessDenied,Confirmation,Error,Login,RequestAccess,Signout,WebDeleted)

    在实际项目中需要对SharePoint2010中的AccessDenied页面进行自定制,于是乎上网搜索相关内容,经实际操作此方法可行,便以此文记录. 在SharePoint2010中,由于secur ...

  8. 开发部署一个简单的Servlet

    Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...

  9. 使用pycharm进行远程开发部署调试设置 与 远程部署调试是否必须使用远程主机的解释器?

    远程开发部署调试目的: 配置pycharm远程部署调试主要用于本地代码与远程服务器上的代码进行同步,使得本地代码经过修改后,可以很容易的同步到远程服务器上.同时设置pycharm的解释器为远程服务器的 ...

随机推荐

  1. Effective C++ ——构造/析构/赋值运算符

    条款五:了解C++默认编写并调用那些函数 是否存在空的类? 假设定义类为class Empty{}:当C++编译器处理过后会变成如下的形式: class Empty{ Empty(){} ~Empty ...

  2. UE4 C++与蓝图交互

    一.C++调用蓝图的函数 本来应该有一个很好的示例,但一下却忘了适用于哪些地方,只有简单写一个步骤了. 1.新建一个C++类继承Actor,名称随意,我这里继承了一个SplineMesh,一样de,并 ...

  3. 开源项目——小Q聊天机器人V1.5

    小Q聊天机器人V1.0 http://blog.csdn.net/baiyuliang2013/article/details/51386281 小Q聊天机器人V1.1 http://blog.csd ...

  4. 学习笔记-JS公开课二

    typeof运算符的使用 JS中内置对象Array/Date/Math/String可以看成引用类型 做如下测试: <scripttype="text/javascript" ...

  5. 网站开发进阶(三十八)Web前端开发规范文档你需要知道的事

    Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...

  6. Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite

    Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射 ...

  7. 基于WAMP的Crossbario 安装入门

    简单学习和使用WAMP协议,Router 是crossbario, Client是Autobahn, 了解运作的流程. 测试环境是Centos6 虚拟机一台 目录为 /data/wamp/ ,用的是P ...

  8. 清除行内元素之间的HTML空白

    原文连接:Remove Whitespace Between Inline-Block Elements 原文日期: 2013年8月27日 翻译日期: 2013年8月28日 至今我还记得年轻是在IE6 ...

  9. STL:字符串用法详解

    字符串是程序设计中最复杂的变成内容之一.STL string类提供了强大的功能,使得许多繁琐的编程内容用简单的语句就可完成.string字符串类减少了C语言编程中三种最常见且最具破坏性的错误:超越数组 ...

  10. 敏捷测试(6)--基于story的敏捷基础知识

    基于story的敏捷基础知识----需求管理(三) (3)每日站会 站会的目的有三个: (1)周知进度 仅从用户故事和任务的层面周知进度,任务进度只有两种状态:完成或未完成(完成百分比). (2)周知 ...