Procédure pas à pas : création d’un composant WebPart de base à l’aide du modèle objet de requête
Dernière modification : vendredi 30 avril 2010
S’applique à : SharePoint Server 2010
Dans cet article
Configuration du projet de composant WebPart
Implémentation du composant WebPart
Déploiement et test du composant WebPart
Dans Microsoft SharePoint Server 2010, vous pouvez personnaliser l’apparence et les fonctionnalités des pages du centre de recherche et des composants WebPart à partir du navigateur. Toutefois, si vous souhaitez leur apporter des personnalisations qui ne sont pas possibles par le biais du navigateur, vous pouvez créer des composants WebPart personnalisés qui utilisent le modèle objet de requête ou de fédération pour exécuter des requêtes de recherche.
Dans cette procédure pas à pas, vous allez créer un composant WebPart personnalisé qui exécute une requête par mots clés et affiche les résultats retournés, à l’aide du modèle objet de requête. Pour obtenir un exemple qui montre comment créer un composant WebPart de recherche personnalisé à l’aide du modèle objet de fédération, voir Procédure pas à pas : création d’un composant Web Part de recherche de base à l’aide du modèle objet de fédération.
Le code complet de l’exemple de composant WebPart CustomKeywordSearch est disponible à la rubrique Exemple de code : Code de composant WebPart de recherche de mot clé personnalisé.
Notes
Le composant WebPart décrit dans cette procédure pas à pas fournit des fonctionnalités de recherche très simples.
Cette procédure pas à pas comprend les tâches suivantes :
Configuration du projet de composant WebPart
Implémentation du composant WebPart
Déploiement et test du composant WebPart
Conditions requises
Pour effectuer cette procédure pas à pas, les éléments suivants doivent être installés sur votre ordinateur de développement :
Microsoft SharePoint Server 2010
Microsoft Visual Studio 2010 ou un outil de développement similaire compatible avec Microsoft .NET Framework
Configuration du projet de composant WebPart
Pour créer le projet pour le composant WebPart
Dans Visual Studio 2010, dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Dans Types de projets, sous C#, sélectionnez SharePoint.
Sous Modèles, sélectionnez Projet SharePoint vide. Dans le champ Nom, tapez CustomKeywordSearch, puis cliquez sur OK.
Dans l’Assistant de personnalisation SharePoint, choisissez Déployer en tant que solution de batterie de serveurs, puis cliquez sur Terminer.
Vous devez ensuite ajouter les références requises à votre projet de composant WebPart.
Pour ajouter des références au projet de composant WebPart
Dans le menu Projet, cliquez sur Ajouter une référence.
Sous l’onglet .NET, sélectionnez chacune des références suivantes, puis cliquez sur OK après chaque sélection :
Microsoft.Office.Server
Microsoft.Office.Server.Search
Avant d’ajouter le code du composant WebPart, vous devez ajouter le fichier de classe du composant WebPart au projet, puis ajouter les instructions using pour la classe.
Pour ajouter la classe de composant WebPart au projet
Dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, cliquez sur composant WebPart, entrez Recherche par mots clés personnalisée, puis cliquez sur Ajouter.
Ajoutez les directives d’espace de noms suivantes au début de la classe :
using System.Data; using Microsoft.Office.Server.Search.Query; using Microsoft.Office.Server.Search.Administration;
Implémentation du composant WebPart
Vous pouvez maintenant écrire le code pour exécuter la requête et afficher ensuite les résultats de recherche renvoyés.
Pour ajouter les contrôles enfants du composant WebPart et les rendre
Ajoutez le code suivant au-dessous de la déclaration de la classe Custom_Keyword_Search.
Button queryButton; TextBox queryTextBox; Label resultsLabel; DataGrid resultsGrid;
Dans la méthode CreateChildControls, ajoutez le code pour initialiser les contrôles, comme suit.
protected override void CreateChildControls() { Controls.Clear(); queryTextBox = new TextBox(); this.Controls.Add(queryTextBox); queryButton = new Button(); queryButton.Text = "Start Search"; queryButton.Click += new EventHandler(queryButton_Click); this.Controls.Add(queryButton); resultsLabel = new Label(); this.Controls.Add(resultsLabel); }
Ajoutez un événement Clic pour queryButton à l’aide du code suivant :
void queryButton_Click(object sender, EventArgs e) { if (queryTextBox.Text != string.Empty) { ExecuteKeywordQuery(queryTextBox.Text); } else { resultsLabel.Text = "You must enter a search word."; } }
Ajoutez le code suivant pour la méthode ExecuteKeywordQuery :
void ExecuteKeywordQuery(string queryText) { SearchServiceApplicationProxy proxy = (SearchServiceApplicationProxy)SearchServiceApplicationProxy.GetProxy (SPServiceContext.GetContext(SPContext.Current.Site)); KeywordQuery query = new KeywordQuery(proxy); query.ResultsProvider = Microsoft.Office.Server.Search.Query.SearchProvider.Default; query.QueryText = queryText; query.ResultTypes|=ResultType.RelevantResults; ResultTableCollection searchResults = query.Execute(); if(searchResults.Exists(ResultType.RelevantResults)) { ResultTable searchResult = searchResults[ResultType.RelevantResults]; DataTable result = new DataTable(); result.TableName = "Result"; result.Load(searchResult,LoadOption.OverwriteChanges); FillResultsGrid(result); } }
Ajoutez le code suivant pour la méthode FillResultsGrid :
private void FillResultsGrid(DataTable resultTable) { //Instantiate the DataGrid resultsGrid = new DataGrid(); //Set the DataSource resultsGrid.DataSource = resultTable; //Bind the data to the DataGrid resultsGrid.DataBind(); //Add the DataGrid to the controls Controls.Add(resultsGrid); }
Maintenant, vous pouvez déployer le composant WebPart.
Déploiement et test du composant WebPart
Pour déployer le composant WebPart
Dans le menu Générer, cliquez sur Déployer la solution.
Le processus de déploiement effectue les opérations suivantes :
Crée la DLL de composant WebPart et la déploie dans le global assembly cache.
Crée le composant WebPart et le déploie sur le site Web.
Recycle les services IIS (Internet Information Services).
Si vous sélectionnez à nouveau Déployer la solution après avoir apporté des modifications au projet, la version précédente de la solution est automatiquement retirée et remplacée par la nouvelle version.
À partir du navigateur, accédez à la page de composants WebPart à laquelle vous souhaitez ajouter le composant WebPart.
Cliquez sur l’onglet Actions du site, puis cliquez sur Modifier la page.
Cliquez sur Ajouter un composant WebPart dans une zone de composant WebPart.
Dans Catégories, cliquez sur Personnalisé.
Dans Composants WebPart, cliquez sur Recherche par mots clés personnalisée, puis cliquez sur Ajouter.
Cliquez sur Enregistrer et fermer. Vérifiez que le composant WebPart de recherche par mots clés personnalisée apparaît sur la page.
Pour tester le composant WebPart
Tapez un terme à rechercher dans la zone de texte, puis cliquez sur Rechercher.
Dans Visual Studio 2010, sur le menu Projet, cliquez sur Propriétés CustomKeywordSearch.
Sur l’onglet Débogage, dans la section Action de démarrage, cliquez sur Démarrer le navigateur avec l’URL, puis tapez l’URL de la page de composants WebPart à laquelle vous avez ajouté le composant WebPart. Fermez la page des propriétés.
Après avoir effectué cette étape, vous pouvez définir un point d’arrêt dans le code du composant WebPart et commencer à déboguer en cliquant sur F5 dans le menu Déboguer.