Sharepoint 2010自定义属性



我正在为Sharepoint 2010构建一个Web部件。我可以通过Sharepoint用户界面创建可编辑的自定义属性。没问题。

问题是:我想使用自定义对象(Properties.cs)来定义这些相同的属性(并保持编辑功能可用),而不是像在互联网上显示的那样将所有代码转储到Webpart.cs中。

有办法做到这一点吗?因为我不想在Web部件类中泵送我的所有属性(可编辑或不可编辑)。

是的,您可以这样做…通过使用继承和创建基类,如下

1-首先使用重写CreateChildControls方法(例如)创建从WebPart类继承的基类

<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-在这个基类中实现你的属性,并从上面提到的基类而不是Web部件类中固有你的Web部件。

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

最新更新