Создание веб-частей для sharepoint - PullRequest
0 голосов
/ 19 октября 2010

Я видел 2 разных способа создания веб-частей для sharepoint.Какой из них предпочтительнее всего?

http://msdn.microsoft.com/en-us/library/aa973249%28office.12%29.aspx

Ответы [ 2 ]

1 голос
/ 20 октября 2010

Все, что связано с VSeWSS, просто закончится болью, поэтому метод 1 определенно отсутствует.Метод 2 также не идеален, так как настройка html-элементов в качестве элементов управления становится неуправляемой на уровне, превышающем то, что вы видите в этой демонстрации.Я использую довольно простой универсальный базовый класс, который принимает пользовательский элемент управления в качестве параметра типа и позволяет мне аккуратно отделить весь макет от инфраструктуры sharepoint.Если вы создаете страницы / веб-части программно, большая часть веб-части xml также оказывается необязательной.

public abstract class UserControlWebPart<T> : Microsoft.SharePoint.WebPartPages.WebPart where T:UserControl
{
    protected UserControlWebPart()
    {
        this.ExportMode = WebPartExportMode.All;
    }

    protected virtual void TransferProperties(T ctrl)
    {
        var tc = typeof(T);
        var tt = this.GetType();

        foreach (var p in tt.GetProperties()) {
            if (p.IsDefined(typeof(ControlPropertyAttribute), true)) {
                foreach (var p2 in tc.GetProperties()) {
                    if (p2.Name == p.Name) {
                        p2.SetValue(ctrl, p.GetValue(this, null), null);
                    }
                }
            }
        }
   }


    protected override void CreateChildControls()
    {
        string controlURL = ControlFolder+typeof(T).Name+".ascx";
        var ctrl = Page.LoadControl(controlURL) as T;
        TransferProperties(ctrl);
        this.Controls.Add(ctrl);
    }

    protected virtual string ControlFolder
    {
        get {
            return "~/_layouts/UserControlWebParts/";
        }
    }

}
0 голосов
/ 19 октября 2010

Для тех немногих веб-частей, которые я написал, я думаю, что больше подошел с методом № 2, чем с методом № 1.Кажется более простым и может использоваться повторно вне среды SharePoint (в зависимости от глубины вашей бизнес-логики).

...