次の方法で共有


Microsoft.Reporting.WebFormsClient.ReportViewer.Find メソッド

レポート内の指定されたテキスト文字列を検索します。

構文

$find(viewerId).find(text);

パラメーター

  • Text
    検索対象の文字列。

説明

このメソッドは、現在レポート領域に表示されているレポート ページから検索を開始し、最初に見つかった検索結果を強調表示します。対応するサーバー側メソッドは Find です。

Web ページがポストバックを実行しているとき、または、クライアント側コントロールがコンテンツを読み込んでいるときに、そのメソッドまたはプロパティにアクセスすると、"レポートまたはページが更新中です。現在のアクションが完了するまでお待ちください。" というメッセージの例外が発生します。isLoading プロパティを使用して、レポートまたはページが更新中であるかどうかと、メソッドとプロパティにアクセスできるかどうかを確認してください。

Web ページまたはクライアント側コントロールがポストバックを実行していない場合、このメソッドにはレポートが読み込まれている必要があります。読み込まれているレポートがない場合にこのメソッドを呼び出すと、"読み込まれているレポートがないため、操作を実行できません。" というメッセージの例外が発生します。このメソッドを使用する前に、reportAreaContentType プロパティを使用して、レポート領域にレポート ページが含まれているかどうかを確認してください。

次の ASP.NET ページでは、1 つの外部テキスト ボックスと 2 つの外部ボタンを使用して、レポートから特定の文字列を検索します。

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

ASP.NET ページから参照される Find.js のコードを次に示します。

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

関連項目

参照

Microsoft.Reporting.WebFormsClient.ReportViewer クラス

Microsoft.Reporting.WebFormsClient.ReportViewer.findNext メソッド