Microsoft.Reporting.WebFormsClient.ReportViewer.find 方法

在报表中搜索指定的文本字符串。

语法

$find(viewerId).find(text);

参数

  • Text
    要搜索的字符串。

注释

此方法从当前显示在报表区域中的报表页开始搜索,并突出显示第一个搜索命中。对应的服务器端方法是 Find

当网页正在执行回发或客户端控件正在加载内容时,访问任意方法或属性将导致异常,同时显示消息:“正在更新该报表或页。请等待当前操作完成。”[The report or page is being updated. Please wait for the current action to complete.]使用 isLoading 属性检查是否正在更新报表或页以及是否能够访问方法和属性。

当网页或客户端控件不执行回发时,此方法需要加载报表。如果未加载报表,则调用此方法将导致异常,同时显示消息:“无法执行操作,因为未加载报表。”[The operation cannot be performed because there is no report loaded.]使用此方法之前,请使用 reportAreaContentType 属性检查报表区域是否包含报表页。

下面的 ASP.NET 页使用外部文本框和两个外部按钮在报表中搜索字符串。

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