0

Sharepoint2010のWebパーツを作成しています。Sharepointユーザーインターフェイスを介して編集可能なカスタムプロパティを作成できます。問題ありません。

問題は、インターネットに表示されているようにすべてのコードをWebpart.csにダンプするのではなく、カスタムオブジェクト(Properties.cs)を使用して同じプロパティを定義する(そして編集機能を利用できるようにする)ことです。

これを行う方法はありますか?Webパーツクラスのすべてのプロパティ(編集可能かどうか)をポンプしたくないからです。

4

1 に答える 1

0

はい、できます...継承を使用して、次のように基本クラスを作成します

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
于 2012-04-07T18:02:46.723 に答える