Freigeben über


Microsoft.Reporting.WebFormsClient.ReportViewer.find-Methode

Durchsucht den Bericht nach der angegebenen Textzeichenfolge.

Syntax

$find(viewerId).find(text);

Parameter

  • Text
    Die zu suchende Zeichenfolge.

Hinweise

Mit dieser Methode wird die Suche auf der Berichtsseite gestartet, die gerade im Berichtsbereich angezeigt wird. Der erste Treffer wird hervorgehoben. Die entsprechende serverseitige Methode ist Find.

Wenn die Webseite ein Postback ausführt oder das clientseitige Steuerelement Inhalt lädt, löst das Zugreifen auf die Methoden oder Eigenschaften eine Ausnahme mit der folgenden Meldung aus: "Der Bericht oder die Seite wird aktualisiert. Warten Sie, bis die aktuelle Aktion abgeschlossen ist." Verwenden Sie die isLoading-Eigenschaft, um zu überprüfen, ob der Bericht oder die Seite aktualisiert wird und ob Sie auf die Methoden und Eigenschaften zugreifen können.

Wenn die Webseite oder das clientseitige Steuerelement kein Postback ausführt, erfordert diese Methode, dass ein Bericht geladen wird. Wenn kein Bericht geladen wird, löst das Aufrufen dieser Methode eine Ausnahme mit der folgenden Meldung aus: "Der Vorgang kann nicht ausgeführt werden, weil kein Bericht geladen ist". Verwenden Sie die reportAreaContentType-Eigenschaft, um zu überprüfen, ob der Berichtsbereich eine Berichtsseite enthält, bevor Sie diese Methode einsetzen.

Die folgende ASP.NET-Seite verwendet ein externes Textfeld und zwei externe Schaltflächen, um den Bericht nach einer Zeichenfolge zu durchsuchen.

<%@ 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>

Der Code für Find.js, auf den auf der ASP.NET-Seite verwiesen wird, ist unten angegeben.

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;
}

Siehe auch

Verweis

Microsoft.Reporting.WebFormsClient.ReportViewer-Klasse

Microsoft.Reporting.WebFormsClient.ReportViewer.findNext-Methode