2012-02-06 4 views
0

Je crée un composant WebPart pour Sharepoint 2010. Je peux créer des propriétés personnalisées qui sont modifiables via l'interface utilisateur Sharepoint. Pas de problème là-bas. Le problème est: Je veux utiliser un objet personnalisé (Properties.cs) pour définir ces mêmes propriétés (et garder la fonctionnalité d'édition disponible), plutôt que de jeter tout le code dans le Webpart.cs comme il est montré sur internet .Sharepoint 2010 Propriétés personnalisées

Existe-t-il un moyen de le faire? Parce que je ne veux pas pomper toutes mes propriétés (modifiables ou non) dans la classe webpart.

Répondre

0

Oui, vous pouvez le faire ... en utilisant l'héritage et la création de classes de base comme suit

1- d'abord créer une classe de base héritant de la classe WebPart avec la méthode CreateChildControls de remplacement par exemple

<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 - Implémentez vos propriétés dans cette classe de base et Héritez vos webparts de la classe de base mentionnée ci-dessus plutôt que de la classe webpart.

3- Créez une classe de base pour les contrôles utilisateur implémentant des propriétés publiques pour y accéder dans le contrôle utilisateur, par ex.

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