2012-02-06 241 views
0

我正在構建Sharepoint 2010的Web部件。我可以創建可通過Sharepoint用戶界面進行編輯的自定義屬性。那裏沒問題。Sharepoint 2010自定義屬性

問題是:我想使用自定義對象(Properties.cs)來定義那些相同的屬性(並保持編輯功能可用),而不是像在Internet上顯示的那樣轉儲Webpart.cs中的所有代碼。

有沒有辦法做到這一點?因爲我不想在webpart類中抽取所有屬性(可編輯或不可以)。

回答

0

是的,你可以做到這一點...通過繼承和創建基類如下

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 - 在這個基類中實現你的屬性,以及從上面提到的基類而不是webpart類的固有的webparts。

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 
相關問題