Настраиваемая форма SharePoint - PullRequest
1 голос
/ 02 ноября 2010

Я хочу создать страницу с одной формой, которая выполняет следующие действия:

  1. Свяжитесь с веб-службой, указав данные из формы.
  2. Выполнить действие (запрограммированное с помощью C #) в зависимости от результата вызова веб-службы.

Поскольку я не взаимодействую с какими-либо списками или аналогичными объектами на сайте SharePoint, я подумал, что веб-часть будет самым простым способом добавления формы и отслеживания события submit, но я не уверен, что это лучший метод или существует более простой / лучший способ.

Мне также нужно ограничить доступ к форме для определенной группы пользователей.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

Новая веб-часть SharePoint, вероятно, является наиболее распространенным способом предоставления этого решения в SharePoint и хорошо соответствует вашим требованиям.Хотя ваше решение не требует его, у вас есть доступ к спискам из пользовательского кода веб-части.

Если вы используете SharePoint 2007, Расширения Visual Studio предоставляют поддерживаемый Microsoft способсоздать один легко.Это намного проще с Visual Studio 2010 и SharePoint 2010.

Некоторые другие параметры - это форма InfoPath с пользовательским кодом или пользовательская страница приложения с кодом позади.Преимущество веб-части заключается в том, что она работает со всеми версиями SharePoint и может быть добавлена ​​на любую страницу веб-части на сайте и настроена пользователями.Кроме того, страница приложения может не открыть главную страницу, если вы работаете в SharePoint 2007.

1 голос
/ 02 ноября 2010

Используйте 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 напрямую, но вы можете управлять разрешениями сайта, на котором она находится (таким образом, ограничьте сайт только той группой пользователей, для которой вы хотите получить доступ к форме).

...