2010-11-02 89 views
1

我期待上有一个单一的形式,做下面创建一个页面:的SharePoint自定义窗体

  1. 联系与表单输入一个Web服务。
  2. 执行取决于web服务调用的结果(使用C#编程)的动作。

因为我不与任何列表进行交互或SharePoint站点上的相似,我在想一个Web部件将添加的形式和捕捉提交事件的最简单的方法,但我不知道这是否是存在最佳实践或更简单/更好的方式。

我还需要限制访问形式向特定用户组。

在此先感谢!

回答

2

一个新的SharePoint Web部件可能是提供在SharePoint该解决方案的最常见的方式,符合你的需求良好。虽然您的解决方案不需要它,但您可以访问自定义Web部件代码中的列表。

如果您在使用SharePoint 2007,Visual Studio Extensions提供微软支持的方式轻松地创建一个。这是与Visual Studio 2010和SharePoint 2010

一些其他的选择将与自定义代码或代码后面的自定义应用程序页面中的InfoPath表单要容易得多。 Web部件的好处是,它与SharePoint的所有版本,并可以由用户添加到网站上的任何Web部件页面和定制。另外,如果你是在SharePoint 2007

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页面的权限,但你可以操纵该网站的权限,它是(因此,限制网站只有您要访问的形式用户组)。