代码之家  ›  专栏  ›  技术社区  ›  Christian P.

SharePoint自定义表单

  •  1
  • Christian P.  · 技术社区  · 14 年前

    1. 使用表单中的输入与Web服务联系。
    2. 根据webservice调用的结果执行操作(使用C#编程)。

    由于我不在SharePoint网站上与任何列表或类似的交互,我认为Web部分将是添加表单并捕获提交事件的最简单方式,但我不确定这是否是最佳实践或更容易/更好的方式存在。

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

    提前谢谢!

    2 回复  |  直到 14 年前
        1
  •  2
  •   Frédéric Hamidi    14 年前

    一个新的SharePoint Web部件可能是在SharePoint中提供此解决方案的最常用方法,并且很适合您的需求。尽管您的解决方案不需要它,但您确实可以从自定义web部件代码访问列表。

    如果您使用的是SharePoint 2007, Visual Studio Extensions

    其他一些选项可能是带有自定义代码的InfoPath表单或带有代码隐藏的自定义应用程序页。web部件的好处是,它可以与所有版本的SharePoint一起工作,并且可以添加到网站上的任何web部件页面,并由用户自定义。此外,如果您在SharePoint 2007上,则应用程序页可能不会拾取母版页。

        2
  •  1
  •   Mike    14 年前

    使用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
        }
    }