SharePoint2007 开发部署Application Pages
介绍: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的更多相关文章
- SharePoint Site Pages & Application Pages
转:http://www.wcode.net/plus/view.php?aid=1582071 SharePoint一个很重要的概念就是Site Pages和Application Pages.接触 ...
- 在微服务系统开发部署中使用Azure RBAC自定义角色
Azure的官方文档介绍了如何创建用于Azure基于角色的访问控制的自定义角色(RBAC Role). 我们也可以根据同样的原理把RBAC细粒度资源管理运用于微服务产品的开发部署中.(https:// ...
- 让开发部署提速 8 倍,我参与贡献这款 IDE 插件的全过程
如何像参与开源那样,去参与一款 IDE 插件的设计? 作为一款 IDE 插件的使用者,我是否能决定下一个版本的功能? 自从产品经理银时小伙和他的开发小哥们在去年12月发布 Cloud Toolkit( ...
- 2022最新IntellJ IDEA诺依开发部署文档
前景提示 若伊是国内一款很好的开源项目,非常的便于学习,而且它是开源免费的,但是,它的开发部署文档实在是没法按照那个文档,快速高效的在本地搭建一套可以运行的项目,对于学习开发和使用实在是一大难题,为此 ...
- 2022最新IntellJ IDEA的zheng开发部署文档
目录 前景提示 一.环境整合 构建工具(参考工具部署方式) 二.git 导入编译器 三.模块描述浅析 四.配置文档 1.总配置 2.数据库配置 3.密码设置 4.配置建议 五.在IDEA中执行MySQ ...
- 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了 ...
- 在SharePoint2010中用out-of-box的方式自定制Application Pages(AccessDenied,Confirmation,Error,Login,RequestAccess,Signout,WebDeleted)
在实际项目中需要对SharePoint2010中的AccessDenied页面进行自定制,于是乎上网搜索相关内容,经实际操作此方法可行,便以此文记录. 在SharePoint2010中,由于secur ...
- 开发部署一个简单的Servlet
Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...
- 使用pycharm进行远程开发部署调试设置 与 远程部署调试是否必须使用远程主机的解释器?
远程开发部署调试目的: 配置pycharm远程部署调试主要用于本地代码与远程服务器上的代码进行同步,使得本地代码经过修改后,可以很容易的同步到远程服务器上.同时设置pycharm的解释器为远程服务器的 ...
随机推荐
- 并发计算模型BSP与SEDA
1 BSP批量同步并行计算 BSP(Bulk Synchronous Parallel)批量同步并行计算用来解决并发编程难的问题.名字听起来有点矛盾,又是同步又是并行的.因为计算被分组成一个个超 ...
- java中&和&&的区别 位运算
1.1. 逻辑与的运算符功能 1.1.1. 测试&& public static void main(String[] args) { int x=5; if (x==6 && ...
- TBschedule入门
tbschedule 淘宝的wiki: http://code.taobao.org/p/tbschedule/wiki/index/ 截取内容如下: 此文档内部包括: 1.设计目标说明 2.主要概念 ...
- FFmpeg源代码简单分析:avcodec_close()
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- (一二〇)CALayer的一些特性
1.每个View都自带一个CALayer,称为rootLayer,layer可以和实现与View一样的显示功能,但是它不继承UIResponse,也就是说它无法处理事件,所以为了处理事件还是要用Vie ...
- 3. React 组件生命周期介绍
React 中的每个组件都有三个阶段,这三个阶段构成了组件完整的生命周期.组件的生命周期为]); return; } this.setState({name: event.target ...
- (NO.00004)iOS实现打砖块游戏(十三):伸缩自如,我是如意金箍棒(下)!
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 准备缩短反弹棒素材 和上一篇类似,我们如法炮制一张缩短后反弹棒的 ...
- Iframe高度自适应(兼容IEFirefox、同域跨域)
在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此. 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固 ...
- Chapter 3 Protecting the Data(4):创建和使用应用程序角色
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39927713,专题目录:http://blog.csdn.net/dba_huangzj ...
- java设计模式---合成模式3
实例 下面以一个逻辑树为例子,以上面的原理图为蓝本,看看如何实现并如何使用这个树,这个结构很简单,但是如何去使用树,遍历树.为我所用还是有一定难度的. 这里主要用到树的递归遍历,如何递归.如何控制 ...