我希望创建一个页面,该页面上只有一个表单,执行以下操作:
由于我没有与SharePoint站点上的任何列表或类似的列表交互,所以我认为WebPart是添加表单和捕获提交事件的最简单方法,但我不确定这是最佳实践还是更简单/更好的方法。
我还需要将对表单的访问限制为特定的用户组。
提前感谢!
发布于 2010-11-02 14:47:07
一个新的SharePoint Web部件可能是在SharePoint中提供此解决方案的最常用方法,并且非常适合您的需求。虽然您的解决方案不需要它,但是您确实可以从自定义web部件代码访问列表。
如果您使用的是SharePoint 2007,则Visual Studio扩展提供了微软支持的轻松创建方法。使用Visual 2010和SharePoint 2010要容易得多。
其他一些选项是带有自定义代码的InfoPath表单或后面有代码的自定义应用程序页面。web部件的好处是它可以与所有版本的SharePoint一起工作,并且可以添加到站点上的任何web部件页面中,并由用户定制。此外,如果您在SharePoint 2007上,应用程序页可能不会选择母版页。
发布于 2010-11-02 17:30:54
使用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页面的权限,但是您可以操作它所在的站点的权限(因此,将站点限制为只访问要访问表单的用户组)。
https://stackoverflow.com/questions/4078510
复制相似问题