DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 928700 - Dernière mise à jour: lundi 11 décembre 2006 - Version: 1.0

 

Sommaire

INTRODUCTION

Cet article explique comment créer une page de recherche de serveur d'index personnalisée à l'aide de ASP (Active Server Pages) dans Microsoft Expression Web.

Plus d'informations

Étape 1: Installation de Microsoft ASP.NET

Avant d'utiliser les fonctionnalités ASP dans Expression Web, vous devez installer ASP.NET. Pour plus d'informations sur la façon d'installer ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
928710  (http://support.microsoft.com/kb/928710/ ) Comment faire pour installer ASP.NET pour utiliser les fonctionnalités ASP (Active Server Pages) dans Expression Web

Étape 2: Ajouter une page de formulaire dans Expression Web

  1. Démarrez Expression Web et ouvrez le site Web pour lequel vous souhaitez créer une page de recherche.
  2. Dans le menu Fichier , pointez sur Nouveau , cliquez sur la page et puis cliquez sur OK .
  3. Dans le menu Insertion , pointez au format HTML , puis cliquez sur balises HTML supplémentaires .
  4. Dans le volet droit, développez contrôles de formulaire et puis sur Entrée (texte) , double-cliquez sur zone déroulante et double-cliquez sur Entrée (soumettre) .
  5. Sur la page Web, double-cliquez sur la zone de texte que vous avez insérée dans l'étape 4.
  6. Dans la boîte de dialogue Propriétés-Zone de texte , tapez QUERYTEXT dans la zone Nom .
  7. Dans la zone Valeur initiale , tapez <%=Request("QUERYTEXT")%>, puis cliquez sur OK .
  8. Dans la page Web, double-cliquez sur la zone de liste déroulante que vous avez insérée dans l'étape 4.
  9. Dans la boîte de dialogue Déplacer vers le bas propriétés de la zone , tapez QUERYFIELD dans la zone Nom .
  10. Cliquez sur Ajouter et tapez DocAppName dans la boîte de choix .
  11. Désactivez la case à cocher Spécifier la valeur , puis cliquez sur OK .
  12. Répétez les étapes 10 et 11 pour ajouter les éléments menu suivants :
    • cette description
    • FileName
    • DocAuthor
    • DocTitle
  13. Cliquez sur OK
  14. Cliquez avec le bouton droit sur le bouton Envoyer , puis cliquez sur Propriétés du formulaire .
  15. Cliquez sur Envoyer aux autres , puis cliquez sur Options .
  16. Dans la zone action , tapez <%=Request.ServerVariables("URL")%>, puis cliquez sur OK deux fois.
  17. Dans le menu Fichier , cliquez sur Enregistrer .
  18. Dans la zone Nom de fichier , tapez IndexServerTest.asp et puis cliquez sur Enregistrer .

Étape 3: Ajouter le code ASP exemple à la page

note Vous pouvez recevoir un message d'erreur si vous collez l'exemple de code à partir de cet article dans Expression Web. Expression Web peut misinterpret les crochets (<). Pour contourner ce problème, collez le code exemple dans un document vide du Bloc-notes. Copiez le code dans le bloc-notes, puis puis collez-le dans Expression Web.
  1. Dans la barre d'état du volet droit, cliquez sur code pour basculer vers l'affichage HTML.
  2. Type or paste the following code before the opening HTML tag:
    <%
      ' Force variable declaration.
      Option Explicit
    
      ' Declare all our variables.
      Dim strQueryText
      Dim strQueryField
      Dim strSQL
      Dim strName
      Dim strValue
      Dim objRS
      Dim objField
    
      ' This is the list of Index Server variables that will appear.
      ' You can customize the list of fields. For more information,
      ' see Microsoft Knowledge Base article 318387.
      Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle, FileName, Create, Access, Characterization, VPath"
    
      ' This is the default Index Server catalog for all Web content.
      ' For information about how to customize this, see Microsoft 
      ' Knowledge Base article 318387.
    
      Const strDataSource = "WEB"
    
      ' Get the value of the user-submitted search query.
      strQueryText = Request("QUERYTEXT")
      ' Set a default value if the user has not submitted anything.
      If Len(strQueryText) = 0 Then strQueryText = "%%"
    
      ' Get the field that the user wants to query against.
      strQueryField = Request("QUERYFIELD")
      ' Set a default value if the user has not specified a field.
      If Len(strQueryField) = 0 Then strQueryField = "DocTitle"
    %>
  3. Tapez ou collez le code suivant après la balise fermante :
    ' Check if the user has entered a value in the form
    If strQueryText <> "%%" Then
    <%
      ' Build the SQL statement from the user-specified options.
      strSQL = "SELECT " & strDisplayFields & " FROM SCOPE() " & _
      	"WHERE ((" & strQueryField & " LIKE '%" & strQueryText & "%') AND " & _
      	"((VPath NOT LIKE '%/_vti%') AND (VPath NOT LIKE '%/_private%')))"
    
      ' Create a recordset object.
      Set objRS = Server.CreateObject("ADODB.Recordset")
    
      ' Open the recordset by using the SQL string with the Index Server provider.
      objRS.Open strSQL,"PROVIDER=MSIDXS;DATA SOURCE=" & strDataSource
    
      ' Are there any records to show?
      If objRS.EOF Then
    
        ' Show a default message if nothing is found.
        Response.Write "No Documents were Found." & vbCrLf  
    
      ' Otherwise...
      Else
    
        ' Start a table.
        Response.Write "<table border=""1"">" & vbCrLf
    
        ' Start the row for the header section.
        Response.Write "<tr>" & vbCrLf
        ' Loop through the fields collection.
        For Each objField in objRS.Fields
          ' Get the field's name.
          strName  = objField.Name
          ' If the field has a name, escape it for HTML.
          If Len(strName)  > 0 Then strName = Server.HTMLEncode(strName)
          ' Output the field name as a table header.
          Response.Write "<th>" & strName & "</th>" & vbCrLf
        Next
        ' End the row for the header section.
        Response.Write "</tr>" & vbCrLf   
    
        ' Loop through all the records.
        While Not objRS.EOF
          ' Start a row in the data section.
          Response.Write "<tr>" & vbCrLf
          ' Loop through the fields collection.
          For Each objField in objRS.Fields
            ' Get the field's value.
            strValue = objField.Value
            ' Look for null values.
            If Len(strValue) > 0 Then
              ' If the value is not null, escape it for HTML.
              strValue = Server.HTMLEncode(strValue)
            Else
              ' Otherwise, make it a non-breaking space character.
              strValue = "&#xa0;"
            End If
          ' Output the field value as table data.
            Response.Write "<td>" & strValue & "</td>" & vbCrLf
          Next
          ' End a row in the data section.
          Response.Write "</tr>" & vbCrLf
          ' Move on to the next record.
          objRS.MoveNext
         Wend
         Response.Write "</table>" & vbCrLf
      End If
    %>
    Else
    ' User has not entered any value in search form
        Response.Write "Please enter a Search Term before submitting the form" & vbCrLf
    End if
  4. Dans le menu Fichier , cliquez sur Enregistrer .

Étape 4: Test de l'exemple de page ASP

  1. Démarrez Expression Web et ouvrez la page IndexServerTest.asp.
  2. Dans le menu Fichier , pointez sur Afficher dans le navigateur et puis cliquez sur le navigateur que vous souhaitez utiliser.
  3. Dans la zone de texte, tapez vos critères de recherche. Dans la liste, cliquez sur le champ que vous voulez interroger.
  4. Cliquez sur Envoyer . Les résultats qui correspondent à votre requête s'affichent dans une table sur la page.

Étape 5: personnaliser l'exemple de page ASP

Utilisez une des méthodes suivantes pour personnaliser la page ASP exemple.

Méthode 1: Modifier le catalogue

Si plusieurs catalogues Index Server sont définies sur le serveur Web, vous pouvez configurer la page d'exemple pour utiliser un catalogue différent. Pour ce faire, procédez comme suit :
  1. Démarrez Expression Web et puis ouvrir l'exemple ASP page que vous avez créé plus haut dans cet article.
  2. Cliquez sur code pour basculer en mode HTML.
  3. Recherchez la ligne de code suivante :
    Const strDataSource = "WEB"
  4. Modifier la valeur de la variable strDataSource sur le nom de votre catalogue. Par exemple, la ligne ressemble au code suivant :
    Const strDataSource = My_Custom_Catalog
  5. Dans le menu Fichier , cliquez sur Enregistrer , puis fermez le fichier.

Méthode 2: Modifier la liste de champs

  1. Démarrez Expression Web et ouvrez la page de Web exemple que vous avez créée plus haut dans cet article.
  2. Cliquez sur code pour basculer en mode HTML.
  3. Recherchez la ligne de code qui ressemble le code suivant :
    Const strDisplayFields = "Rank, DocAuthor, DocAppName"
  4. Modifier la liste de valeurs. Séparez chaque nom de champ par une virgule. Par exemple, la ligne ressemble au code suivant :
    Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle"
  5. Dans le menu Fichier , cliquez sur Enregistrer , puis fermez le fichier.
Le tableau suivant répertorie les valeurs que vous pouvez utiliser pour la variable strDisplayFields .
Réduire ce tableauAgrandir ce tableau
nom de champ type de champ Description
AccèsDate/heureLa dernière fois le fichier est accessible.
Cette descriptionTexte/ChaîneCette description ou résumé, du document comme calculée par le serveur d'index
CréerDate/heureL'heure auxquelles le fichier a été créé
RépertoireTexte/ChaîneLe chemin d'accès physique du fichier, n'inclut pas le nom de fichier
DocAppNameTexte/ChaîneLe nom de l'application qui a créé le fichier
DocAuthor Texte/ChaîneL'auteur du document
DocByteCountNumérique Le nombre d'octets dans le document
DocCategoryTexte/ChaîneLe type de document, comme un mémo, planification ou du livre blanc
DocCharNombre de nombreLe nombre de caractères dans le document
DocCommentsTexte/ChaîneLes commentaires du document pour les
DocCompanyTexte/ChaîneLe nom de la société pour laquelle le document a été écrit
DocCreatedTmDate/heureL'heure auxquelles le document a été créé
DocEditTimeDate/heureLe temps total qui a été passé modification du document
DocHiddenCountNumériqueLe nombre de masquées diapositives dans une présentation Microsoft PowerPoint
DocKeywordsTexte/ChaîneLes mots-clés de document
DocLastAuthorTexte/ChaîneL'utilisateur plus récente qui a modifié le document
DocLastPrintedDate/heureL'heure de dernière impression le document
DocLastSavedTmDate/heure L'heure du dernier enregistrement du document
DocLineCountNumériqueLe nombre de lignes contenues dans un document
DocManagerTexte/ChaîneLe nom du responsable d'auteur du document
DocNoteCountNumériqueLe nombre de pages que des notes dans une présentation PowerPoint
DocPageCountNumériqueLe nombre de pages dans le document
DocParaCountNumériqueLe nombre de paragraphes dans le document
DocPartTitlesTexte/ChaîneNoms des parties du document. Par exemple, dans Microsoft Excel, une feuille de calcul est une partie de document. Dans Microsoft PowerPoint, une diapositive est une partie de document. Dans Microsoft Word, les noms de fichier des documents qui sont contenus dans un document maître sont des parties du document.
DocPresentationTargetTexte/ChaîneLe format de cible (tel que 35 mm, une imprimante ou vidéo) pour une présentation PowerPoint
DocRevNumberTexte/ChaîneLe nombre de version actuel d'un document
DocSlideCountNumériqueLe nombre de diapositives dans une présentation PowerPoint
DocSubjectTexte/ChaîneL'objet du document
DocTemplateTexte/ChaîneLe nom du modèle pour le document
DocTitleTexte/ChaîneLe titre du document
DocWordCountNumériqueLe nombre de mots dans le document
FileIndexNumériqueL'ID unique du fichier de
FileNameTexte/ChaîneLe nom du fichier
HitCountNumériqueLe nombre de correspondances ou les mots qui correspond à une requête, dans le fichier
Chemin d'accèsTexte/ChaîneLe chemin physique complet du fichier, y compris le nom de fichier
RangNumériqueLe rang de la ligne. Cette valeur allant de 0 à 1 000. Les numéros de plus grandes indiquent une meilleure correspondance.
ShortFileNameTexte/ChaîneLe nom de fichier (8.3) court
TailleNumériqueLa taille du fichier en octets
VPathTexte/ChaîneLe chemin d'accès virtuel complet du fichier, y compris le nom du fichier. S'il existe plusieurs chemins possibles, la meilleure correspondance pour la requête spécifique est choisie.
ÉcritureDate/heureLa dernière fois le fichier a été écrit

Résolution des problèmes

  • Si le service d'index n'est pas en cours d'exécution, vous recevez le message d'erreur suivantes :
    Fournisseur Microsoft OLE DB pour erreur de service d'indexation '80041820' service n'est pas en cours d'exécution. /IndexServerTest.asp, ligne 44
    Pour résoudre ce problème, démarrez le service d'index.
  • Si vous spécifiez un catalogue qui n'est pas valide, que vous recevez un message d'erreur ressemble le message d'erreur suivantes :
    Fournisseur Microsoft OLE DB pour le service d'indexation erreur '8004181d' il n'est pas catalogue. /IndexServerTest.asp, ligne 44
    Pour résoudre ce problème, vérifiez la valeur de la variable strDataSource . Si elle est correcte, redémarrez le service d'index.

Références

Pour plus d'informations sur la façon d'utiliser avec le service d'indexation Microsoft Windows 2000, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
185985  (http://support.microsoft.com/kb/185985/ ) L'utilisation de serveur d'index pour interroger et afficher des informations de BALISE META
256276  (http://support.microsoft.com/kb/256276/ ) Message d'erreur : Il n'existe pas de catalogue
229282  (http://support.microsoft.com/kb/229282/ ) Code ASP est visible lorsque vous affichez source d'une page de résultats Index Server

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Expression Web
Mots-clés : 
kbmt kbexpertiseinter kbhowto KB928700 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 928700  (http://support.microsoft.com/kb/928700/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store