SharePoint自定义表单

时间:2010-11-02 14:12:03

标签: sharepoint sharepoint-2007 web-parts

我希望创建一个包含单个表单的页面,该页面执行以下操作:

  1. 使用表单中的输入联系网络服务。
  2. 执行操作(使用C#编程),具体取决于Web服务调用的结果。
  3. 由于我没有与SharePoint网站上的任何列表或类似内容进行交互,因此我认为WebPart是添加表单和捕获提交事件的最简单方法,但我不确定这是否是最佳做法或者更简单/更好的方式。

    我还需要将对表单的访问权限限制为特定的用户组。

    提前致谢!

2 个答案:

答案 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页面的权限,但您可以操纵其所在站点的权限(因此,仅将站点限制为您要访问该表单的用户组)。