Sharepoint 2010 Пользовательские свойства - PullRequest
0 голосов
/ 06 февраля 2012

Я создаю веб-часть для Sharepoint 2010. Я могу создавать собственные свойства, которые можно редактировать через пользовательский интерфейс Sharepoint. Там нет проблем.

Проблема заключается в следующем: я хочу использовать пользовательский объект (Properties.cs) для определения тех же свойств (и сохранения функциональности редактирования), а не выгружать весь код в Webpart.cs, как это показано в Интернете.

Есть ли способ сделать это? Потому что я не хочу качать все свои свойства (редактируемые или нет) в классе веб-частей.

1 Ответ

0 голосов
/ 07 апреля 2012

Да, вы можете сделать это ... используя наследование и создавая базовые классы следующим образом

1 - сначала создайте базовый класс, наследующий от класса WebPart, с переопределением метода CreateChildControls, например,

<XmlRoot("MyWebPartBase")> _
<ToolboxItemAttribute(True)> _
Public Class BaseWebPart
    Inherits WebPart

Protected Overrides Sub CreateChildControls()
        Dim control As Object = Page.LoadControl(ascxPath)

        If control IsNot Nothing Then
            control.WebPartControl = Me
            Controls.Add(CType(control, Control))
        End If
    End Sub 
'Add public properties here 


End Class

2- Реализуйте свои свойства в этом базовом классе и присвойте свои веб-части вышеупомянутому базовому классу, а не классу веб-частей.

3- Создайте базовый класс для пользовательских элементов управления, реализующих открытые свойства для доступа к ним в пользовательском элементе управления, например

Public Class BaseUserControl
    Inherits UserControl

    Private _WebPartControl As BaseWebPart

    Public Property WebPartControl As BaseWebPart
        Get
            Return _WebPartControl
        End Get
        Set(ByVal value As BaseWebPart)
            _WebPartControl = value
        End Set
    End Property


Public ReadOnly Property WebPartID() As String
    Get
        Return WebPartControl.ID
    End Get
End Property
End Class
...