我正在为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