Partager via


Méthode find

Recherche la chaîne de texte spécifiée dans le rapport.

 $find(viewerId).find(text);

Paramètres

  • Text
    Chaîne à rechercher.

Notes

Cette méthode démarre la recherche à partir de la page de rapport actuellement affichée dans la zone de rapport et met en surbrillance la première correspondance de recherche. La méthode côté serveur correspondante est Find.

Lorsque la page Web effectue une publication ou que le contrôle côté client charge du contenu, l'accès aux méthodes ou propriétés provoquera une exception avec le message : « Le rapport ou la page est en cours de mise à jour. Attendez que l'action actuelle se termine ». Utilisez la propriété isLoading pour vérifier si le rapport ou la page est en cours de mise à jour et si vous pouvez accéder aux méthodes et propriétés.

Lorsque la page Web ou le contrôle côté client n'effectue pas de publication, cette méthode requiert le chargement d'un rapport. Si aucun rapport n'est chargé, l'appel de cette méthode provoquera une exception avec le message : « L'opération ne peut pas être effectuée, car aucun rapport n'est chargé ». Utilisez la propriété reportAreaContentType pour vérifier si la zone de rapport contient une page de rapport avant d'utiliser cette méthode.

La page ASP.NET suivante utilise une zone de texte externe et deux boutons externes pour rechercher une chaîne dans le rapport.

<%@ Page Language="C#" %>

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="Find.js" />
        </Scripts>
    </asp:ScriptManager>
    <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote" >
        <ServerReport ReportPath=" /AdventureWorks 2008 Sample Reports/Product Catalog 2008" 
            ReportServerUrl="http://<myserver>/reportserver" />
    </rsweb:ReportViewer>
    <asp:TextBox ID="SearchString" runat="server"></asp:TextBox>
    <asp:Button ID="FindButton" runat="server" Text="Find" OnClientClick="return findString($get('SearchString').value);" />
    <asp:Button ID="NextButton" runat="server" Text="FindNext" OnClientClick="return nextHit();" />
    </form>
</body>
</html>

Le code pour Find.js, référencé par la page ASP.NET, est fourni ci-dessous.

function findString(str) {
    var viewer = $find("ReportViewer1");
    if (!viewer.get_isLoading() && viewer.get_reportAreaContentType() ==
    Microsoft.Reporting.WebFormsClient.ReportAreaContent.ReportPage) {
        viewer.find(str);
    }
    return false;
}

function nextHit() {
    var viewer = $find("ReportViewer1");
    if (!viewer.get_isLoading() && viewer.get_reportAreaContentType() ==
    Microsoft.Reporting.WebFormsClient.ReportAreaContent.ReportPage) {
        viewer.findNext();
    }
    return false;
}

Voir aussi

Référence

Classe ReportViewer

Méthode findNext