下面是一个最简单的应用程序页面的示例代码,只要把页面拷贝到_layouts目录下即可。
<%@ Assembly Name="Microsoft.SharePoint, [full 4-part assembly name]"%>
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master"
Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>

<%@ Import Namespace="Microsoft.SharePoint" %>

<script runat="server">

protected override void OnLoad(EventArgs e)
{
SPSite siteCollection = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;
lblSiteTitle.Text = site.Title;
lblSiteID.Text = site.ID.ToString().ToUpper();
}
</script>

<asp:Content ID="Main" runat="server"
contentplaceholderid="PlaceHolderMain" >
Site Title: <asp:Label ID="lblSiteTitle" runat="server" />
<br/>
Site ID: <asp:Label ID="lblSiteID" runat="server" />
</asp:Content>

<asp:Content ID="PageTitle" runat="server"
contentplaceholderid="PlaceHolderPageTitle" >
Hello World
</asp:Content>

<asp:Content ID="PageTitleInTitleArea" runat="server"
contentplaceholderid="PlaceHolderPageTitleInTitleArea" >
Hello World
</asp:Content>
这段代码把后台的onload代码写在了aspx页面上,但其实我更愿意使用code-behind的方式来编写代码。
比如我要建一个customlogin的项目,其中只有一个login.aspx页面,把它放在_layouts目录下的话,只需要把customlogin.dll放到/layouts/bin目录下即可。
但这样会有一个问题,_layouts目录下本身已经有名为login.aspx页面了,如果我们的页面也放在_layouts目录下,就会覆盖原有的login.aspx文件。所以,我们通常可以在_layouts目录下为我们的项目新建一个专门存放我们自定义文件的子目录。
如果想把login.aspx页面放到_layouts目录下的一个子目录下的话,那该子目录需要创建成虚拟目录才能使用code-behind的方式。即,创建子目录customlogin后,我们的login.aspx的存放路径就是_layouts/customlogin/login.aspx;而后台的customlogin.dll的存放路径就是_layouts/customlogin/bin/customlogin.dll。
<%@ Assembly Name="Microsoft.SharePoint, [full 4-part assembly name]"%>
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master"
Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
SPSite siteCollection = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;
lblSiteTitle.Text = site.Title;
lblSiteID.Text = site.ID.ToString().ToUpper();
}
</script>
<asp:Content ID="Main" runat="server"
contentplaceholderid="PlaceHolderMain" >
Site Title: <asp:Label ID="lblSiteTitle" runat="server" />
<br/>
Site ID: <asp:Label ID="lblSiteID" runat="server" />
</asp:Content>
<asp:Content ID="PageTitle" runat="server"
contentplaceholderid="PlaceHolderPageTitle" >
Hello World
</asp:Content>
<asp:Content ID="PageTitleInTitleArea" runat="server"
contentplaceholderid="PlaceHolderPageTitleInTitleArea" >
Hello World
</asp:Content>这段代码把后台的onload代码写在了aspx页面上,但其实我更愿意使用code-behind的方式来编写代码。
比如我要建一个customlogin的项目,其中只有一个login.aspx页面,把它放在_layouts目录下的话,只需要把customlogin.dll放到/layouts/bin目录下即可。
但这样会有一个问题,_layouts目录下本身已经有名为login.aspx页面了,如果我们的页面也放在_layouts目录下,就会覆盖原有的login.aspx文件。所以,我们通常可以在_layouts目录下为我们的项目新建一个专门存放我们自定义文件的子目录。
如果想把login.aspx页面放到_layouts目录下的一个子目录下的话,那该子目录需要创建成虚拟目录才能使用code-behind的方式。即,创建子目录customlogin后,我们的login.aspx的存放路径就是_layouts/customlogin/login.aspx;而后台的customlogin.dll的存放路径就是_layouts/customlogin/bin/customlogin.dll。
本文介绍如何在SharePoint中部署自定义的应用程序页面,并讨论了页面放置位置、避免覆盖默认页面的方法及使用code-behind进行编码的技巧。
1774

被折叠的 条评论
为什么被折叠?



