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