我希望创建一个包含单个表单的页面,该页面执行以下操作:
由于我没有与SharePoint网站上的任何列表或类似内容进行交互,因此我认为WebPart是添加表单和捕获提交事件的最简单方法,但我不确定这是否是最佳做法或者更简单/更好的方式。
我还需要将对表单的访问权限限制为特定的用户组。
提前致谢!
答案 0 :(得分:2)
新的SharePoint Web部件可能是在SharePoint中提供此解决方案的最常用方法,可以很好地满足您的要求。虽然您的解决方案不需要它,但您可以访问自定义Web部件代码中的列表。
如果您使用的是SharePoint 2007,则Visual Studio Extensions会提供Microsoft支持的轻松创建方式。使用Visual Studio 2010和SharePoint 2010会更容易。
其他一些选项可能是带有自定义代码的InfoPath表单或带有代码的自定义应用程序页面。 Web部件的好处是它可以与所有版本的SharePoint一起使用,并且可以添加到站点上的任何Web部件页面并由用户自定义。此外,如果您使用的是SharePoint 2007,则应用程序页面可能无法获取母版页。
答案 1 :(得分:1)
使用WebDAV将ASPX页面上载到SharePoint中的站点。然后将程序集上传到每个SharePoint服务器,首选应用程序的bin文件夹,或将其添加到GAC。
您的ASPX页面可能如下所示:
<%@ Page Language="C#" masterpagefile="~masterurl/custom.master" inherits="MyAssembly, MyClass, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c48b11b32c9eb4a7" %>
<asp:Content runat="server" ContentPlaceholderID="PlaceHolderPageTitle">My Title</asp:Content>
<asp:Content runat="server" ContentPlaceholderID="PlaceHolderPageTitleInTitleArea">My Page</asp:Content>
<asp:Content runat="server" ContentPlaceholderID="PlaceHolderMain">
<asp:Button runat="server" ID="ButtonClickMe" Text="Click Me!" />
</asp:Content>
然后你的装配可能看起来像这样:
public class MyClass : Microsoft.SharePoint.WebPartPages.WebPartPage
{
protected global::System.Web.UI.WebControls.Button ButtonClickMe;
protected override void OnLoad(EventArgs e)
{
base.OnLoad( e );
ButtonClickMe.Click += new EventHandler( ButtonClickMe_Click );
}
void ButtonClickMe_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
// Do stuff here
}
}
您将无法直接编辑ASPX页面的权限,但您可以操纵其所在站点的权限(因此,仅将站点限制为您要访问该表单的用户组)。