Partager via


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

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’aspect et les fonctionnalités des pages et des composants WebPart du Centre de recherche depuis le navigateur. Cependant, si les personnalisations que vous souhaitez apporter à ces pages ou composants WebPart ne sont pas prises en charge par le navigateur, vous pouvez créer des composants WebPart personnalisés qui reposent sur le modèle objet de requête ou le modèle objet 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 de mot clé et affiche les résultats de la recherche retournés à l’aide du modèle objet fédéré. Pour obtenir un exemple qui montre comment créer un composant WebPart de recherche personnalisé à l’aide du modèle objet de requête, voir Procédure pas à pas : création d’un composant WebPart de base à l’aide du modèle objet de requête.

Vous trouverez le code complet pour l’exemple de composant WebPart CustomFederatedSearch dans Exemple de code : code de composant WebPart personnalisé de recherche fédérée.

Notes

Le composant WebPart décrit dans cette procédure pas à pas fournit des fonctionnalités de recherche de base.

Cette procédure pas à pas aborde 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ément 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 compatible Microsoft .NET Framework semblable

Configuration du projet de composant WebPart

Pour créer le projet pour le composant WebPart

  1. Dans Visual Studio 2010, dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.

  2. Dans Types de projets, sous C#, sélectionnez SharePoint.

  3. Sous Modèles, sélectionnez Projet SharePoint vide. Dans le champ Nom, tapez CustomFederatedSearch, puis cliquez sur OK.

  4. Dans l’Assistant Personnalisation de SharePoint, cliquez sur Déployer en tant que solution de batterie, puis 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

  1. Dans le menu Projet, cliquez sur Ajouter une référence.

  2. Sous l’onglet .NET, sélectionnez les références suivantes, puis cliquez sur OK après chaque sélection :

    • Microsoft.Office.Server

    • Microsoft.Office.Server.Search

Avant d’ajouter du code au composant WebPart, vous devez ajouter le fichier de classe du composant WebPart au projet, puis ajouter les instructions using à la classe.

Pour ajouter la classe du composant WebPart au projet

  1. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, cliquez surComposant WebPart, tapez Recherche fédérée personnalisée, puis cliquez sur Ajouter.

  3. Ajoutez les directives d’espace de noms suivantes au début de la classe.

    using System.Data;
    using System.Xml;
    using Microsoft.Office.Server.Search.Query;
    using Microsoft.Office.Server.Search.Administration;
    

Implémentation du composant WebPart

Vous pouvez désormais écrire le code pour exécuter la requête, puis afficher les résultats de la recherche qui sont retournés.

Pour ajouter les contrôles enfants du composant WebPart et les restituer

  1. Ajoutez le code suivant sous la déclaration de classe Custom_Federated_Search.

    Button queryButton;
    TextBox queryTextBox;
    Label resultsLabel;
    DataGrid resultsGrid;
    
  2. Dans la méthode CreateChildControls, ajoutez le code suivant pour initialiser les contrôles.

    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);
    }
    
  3. Ajoutez un événement click pour queryButton à l’aide du code suivant.

    void queryButton_Click(object sender, EventArgs e)
    {
         if (queryTextBox.Text != string.Empty)
         {
              ExecuteFederatedQuery(queryTextBox.Text);
         }
         else
         {
              resultsLabel.Text = "You must enter a search word.";
         }
    }
    
  4. Ajoutez le code suivant pour la méthode ExecuteFederatedQuery.

    void ExecuteFederatedQuery(string queryText)
    {
         long lastupdate;
         bool crawl;
    
         SearchServiceApplicationProxy proxy = (SearchServiceApplicationProxy)SearchServiceApplicationProxy.GetProxy
    (SPServiceContext.GetContext(SPContext.Current.Site));
         LocationConfiguration[] locationConfigs;
         LocationConfiguration locationConfig = null;
         locationConfigs = proxy.GetLocationConfigurations(out lastupdate, out crawl);
         Location location;
         LocationList locationList = new LocationList();
         QueryManager queryManager = new QueryManager();
         foreach (LocationConfiguration locConfig in locationConfigs)
         {
              if (locConfig.InternalName.Equals("LocalSearchIndex"))
              {
                   locationConfig = locConfig;
                   break;
              }
         }
         location = new Location(locationConfig.InternalName, proxy);
         location.UserQuery = queryText;
         locationList.Add(location);
         queryManager.Add(locationList);
         queryManager.IsTriggered(locationList);
         XmlDocument xDoc = queryManager.GetResults(locationList);
         DataSet resultSet = new DataSet();
         resultSet.ReadXml(new XmlNodeReader(xDoc));
         FillResultsGrid(resultSet.Tables[1]);
    }
    
  5. 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);
    }
    

Vous pouvez à présent déployer le composant WebPart.

Déploiement et test du composant WebPart

Pour déployer le composant WebPart

  1. Dans le menu Générer, cliquez sur Déployer la solution.

    Le processus de déploiement effectue les opérations suivantes :

    • Génère la DLL du 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 resélectionnez Déployer la solution après avoir modifié le projet, la version précédente de la solution est automatiquement retirée pour être remplacée par la nouvelle version.

  2. À partir du navigateur, accédez à la page des composants WebPart à laquelle vous voulez ajouter le composant WebPart.

  3. Cliquez sur l’onglet Actions du site, puis cliquez sur Modifier la page.

  4. Cliquez sur Ajouter un composant WebPart dans n’importe quelle zone de composants WebPart.

  5. Dans Catégories, cliquez sur Personnalisé.

  6. Dans Composants WebPart, cliquez sur Recherche fédérée personnalisée, puis cliquez sur Ajouter.

  7. Cliquez sur Enregistrer et fermer. Assurez-vous que le composant WebPart Recherche fédérée personnalisée apparaît sur la page.

Pour tester le composant WebPart

  1. Tapez un terme de recherche dans la zone de texte, puis cliquez sur Rechercher.

  2. Dans Visual Studio 2010, dans le menu Projet, cliquez sur Propriétés de CustomFederatedSearch.

  3. Sous l’onglet Débogage, dans la section du 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 Propriétés.

    Une fois cette étape terminée, vous pouvez définir un point d’arrêt dans le code du composant WebPart et démarrer le débogage en cliquant sur F5 dans le menu Débogage.