一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
SharePoint应用程序页,也就是_layouts路径下的aspx页面,服务器C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATELAYOUTS下,如我们常见的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 filescommon filesmicrosoft sharedweb server extensions12Template" Echo Copying MyAppPages.dll to GAC "C:Program FilesMicrosoft SDKsWindowsv6.0ABingacutil.exe" -if binMyAppPages.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原来的功能,这些就要看开发者自己的需求了。
相关文章
一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
我们经常会在SharePoint网站集的权限列表中看到某个user有LimitedAccessPermission,但是我们都知道或者试过,在SharePointsitecollection中没有办法直接添加user赋予LimitedAccess权限,并且LimitedAccess这个......
2023-01-12
在这样的场景下,比如统计员工的个人信息,IT会在SharePoint中新建list,加一些需要填写的栏位,然后让公司员工登录填写。这时候比起大家都能看到彼此信息而言,从公司角度更想让员工只能......
2023-01-12
大多数企业使用SharePoint文档库时,都会建议EndUser在编辑文档前先做CheckOut动作,这样可以保证文档在当前用户编辑过程中,其他人只能view而不能edit,防止多人同时修改同一文件互相影响的......
2023-01-12
为了记录SharePointLibrary/List中file/Item的修改情况,ITAdministrator会在List/Library的VersionSettings中开启Version管控设置。之后用户每次编辑item/file保存就会生成一个新的version记录,这样我们就会知道......
2023-01-12