Microsoft.Reporting.WebFormsClient.ReportViewer.find 方法
搜尋報表中的指定文字字串。
語法
$find(viewerId).find(text);
參數
- Text
要搜尋的字串。
備註
這個方法會從報表區域中目前顯示的報表頁面開始搜尋,並且反白顯示第一個搜尋叫用。對應的伺服器端方法為 Find。
當網頁正在執行回傳或用戶端控制項正在載入內容時,存取方法或屬性會導致例外狀況並且顯示下列訊息:「報表或網頁正在更新。請等候目前動作完成。」請使用 isLoading 屬性檢查報表或網頁是否正在更新以及您是否可以存取方法和屬性。
當網頁或用戶端控制項未執行回傳時,這個方法會要求載入報表。如果未載入報表,叫用這個方法會導致例外狀況並且顯示下列訊息:「無法執行此作業,因為沒有載入的報表。」在使用這個方法之前,請使用 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;
}