> Tech > Programmation du composant WebPart

Programmation du composant WebPart

Tech - Par Renaud ROSSET - Publié le 10 décembre 2010
email


Vous pouvez désormais débuter la création de votre composant WebPart. Au niveau de son fichier de code, vous devez, dans la méthode CreateChildControls, créer les contrôles qui seront visibles dans votre composant. Le plus simple est de créer une table, de l’ajouter à la collection Controls de

Programmation du composant WebPart

l’objet Web Part, d’inclure des lignes et des cellules dans la table, puis d’ajouter vos contrôles à la collection Controls des cellules. Le code suivant ajoute le contrôle Label à la pre mière cellule, dans la première ligne de la table :

Dim tbl As New Table
Me.Controls.Add(tbl)

Dim trTitle As New TableRow
tbl.Rows.Add(trTitle)

Dim tcTitle As New TableCell
trTitle.Cells.Add(tcTitle)

Dim TitleLabel As New Label()
TitleLabel.Text = "Look for movies with title:" tcText.Controls.Add(SearchTitle)

Pour mon exemple, j’ai créé une table avec quatre lignes : la première contient un contrôle Label et un contrôle TextBox, afin que l’utilisateur puisse entrer le titre d’un film à rechercher. La deuxième ligne contient un contrôle Label et un contrôle TextBox, afin que l’utilisateur puisse saisir une catégorie (telle que film d’action ou drame). La troisième ligne contient le bouton de lancement de la recherche. Enfin, la dernière ligne inclut un contrôle GridView, pour l’affichage du résultat. Dans la méthode CreateControls, vous devez aussi associer tous les événements nécessaires à votre composant. Le code suivant ajoute un bouton à la table et lui associe une routine d’événement :

Dim trButton As New TableRow
tbl.Rows.Add(trButton)

Dim tcButton As New TableCell
trButton.Cells.Add(tcButton)

Dim SearchButton As New Button()
SearchButton.Text = "Search" AddHandler Search
Button.Click, AddressOf Me.StartSearch
tcButton.Controls.Add(SearchButton)

La routine d’événement récupère les données des deux contrôles TextBox de la table (dans les première et deuxième lignes), puis remplit un DatSet lié à un GridView (dans la quatrième ligne) :

Private Sub StartSearch(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim conn As New SqlConnection("…")
Dim cm As SqlCommand = conn.CreateCommand
Dim da As New SqlDataAdapter(cm)
Dim ds As New System.Data.DataSet
Dim searchString As String
Dim tbl As Table
tbl = CType(Me.Controls(0), Table)

searchString = CType( _
tbl.Rows(0).Cells(0).Controls(1), TextBox).Text
cm.CommandText = "Select * From …"
da.Fill(ds, "Results")

Dim gv As GridView
gv = CType(tbl.Rows(2).Cells(0).Controls(1), GridView)
gv.DataSource = ds
gv.DataMember = "Results"
gv.DataBind() End Sub

Pour que l’application SharePoint soit complète, il faut qu’elle prenne en charge un certain niveau de personnalisation. Dans mon exemple, la TextBox de catégorie de films est supportée par une propriété de catégorie personnalisable qui gère un champ interne intitulé _category :

Private _category As String _
_
_

"Movie Search Settings")> _

"A valid movie category to search within")>
Public Property Category() As String
Get
Return _category
End Get
Set(ByVal value As String)
_category = value
End Set
End Property

Lorsque la TexBox SearchCategory est ajoutée à la table qui constitue le contrôle, j’initialise le contrôle avec le champ _category défini via la propriété personnalisable :

Dim SearchCategory As New TextBox()
SearchCategory.Text = _category tcCategory.Controls.Add(SearchCategory)

SharePoint permet désormais à l’utilisateur de spécifier une valeur pour la propriété Category en sélectionnant « Personnalize this page » dans le menu « Welcome User » en haut de la page, ce afin de faire passer la page en « mode personnalisation ». Une fois que l’utilisateur saisit une valeur, SharePoint veille à que la propriété soit automatiquement définie à cette valeur chaque fois que l’utilisateur revient à la page.

Téléchargez cette ressource

Guide des Solutions Cloud & Services Managés Simplifiés

Guide des Solutions Cloud & Services Managés Simplifiés

Comment capitaliser sur son existant tout en bénéficiant, dès à présent, des promesses de flexibilité et de scalabilité du cloud ? Découvrez les bonnes pratiques pour répondre aux défis de simplification du Cloud dans ce nouveau TOP 5.

Tech - Par Renaud ROSSET - Publié le 10 décembre 2010