【问题标题】:How to have Page Navigation programmatically in ReportViewer?如何在 ReportViewer 中以编程方式进行页面导航?
【发布时间】:2012-07-08 11:22:35
【问题描述】:
我正在使用 Reporting Services 在 ASP.NET 中编写报告。我想隐藏 ReportViewer 的工具栏并拥有自己的“下一页”和“上一页”按钮。有没有办法以编程方式浏览 ReportViewer 页面?是否有“NextPage”和“PreviousPage”等方法?
【问题讨论】:
标签:
asp.net
reporting-services
【解决方案1】:
如果您隐藏工具栏并拥有自己的页面导航控件,则可以在代码中设置 ReportViewer 的 CurrentPage 属性。
【解决方案2】:
我只是想我会添加到这个,因为我一直在做类似的事情,并且已经构建了一组 JavaScript(使用 JQuery)函数,您可以在其中传递 ReportViewerID,它允许您添加下一个,上一个, first last 等到您自己的自定义工具栏按钮。只需在文档准备好时使用 ReportViewer_HideToolbar 功能隐藏工具栏。认为值得分享,因为我在昨天搜索几个小时时找不到任何东西。即使它只是某人的起点,至少它更接近并且有帮助:-)
附言我使用的是 ReportViewer 10,其他版本可能不同且无法正常工作。
function ReportViewer_FirstPage(ReportViewerID) {
var ReportViewer = $("span[id$='" + ReportViewerID + "_ReportViewer'")
ReportViewer.find("input[title='First Page']").first().click()
}
function ReportViewer_NextPage(ReportViewerID) {
var ReportViewer = $("span[id$='" + ReportViewerID + "_ReportViewer'")
ReportViewer.find("input[title='Next Page']").first().click()
}
function ReportViewer_PreviousPage(ReportViewerID) {
var ReportViewer = $("span[id$='" + ReportViewerID + "_ReportViewer'")
ReportViewer.find("input[title='Previous Page']").first().click()
}
function ReportViewer_LastPage(ReportViewerID) {
var ReportViewer = $("span[id$='" + ReportViewerID + "_ReportViewer'")
ReportViewer.find("input[title='Last Page']").first().click()
}
var tReportViewerLastFindText = ""
function ReportViewer_Set_SearchText(ReportViewerID, tText) {
var ReportViewer = $("div[id$='MainPlaceHolder_" + ReportViewerID + "'")
ReportViewer.find("input[title='Find Text in Report']").val(tText)
var m_reportViewer = $find($(ReportViewer).attr('id'))
if (tReportViewerLastFindText != tText) {
m_reportViewer.find(tText)
tReportViewerLastFindText = tText
} else {
m_reportViewer.findNext()
}
}
function ReportViewer_Set_PageNumber(ReportViewerID, tPageNumber) {
var ReportViewer = $("span[id$='" + ReportViewerID + "_ReportViewer'")
var CurrentPage = ReportViewer.find("input[title='Current Page']")
$(CurrentPage).val(tPageNumber)
__doPostBack(CurrentPage.attr("name"), '')
}
function ReportViewer_Print(ReportViewerID) {
var ReportViewer = $("div[id$='MainPlaceHolder_" + ReportViewerID + "'")
var m_reportViewer = $find($(ReportViewer).attr('id'))
m_reportViewer.invokePrintDialog()
}
function ReportViewer_HideToolbar(ReportViewerID) {
var ReportViewer = $("span[id$='" + ReportViewerID + "_ReportViewer'")
$(ReportViewer).find("div[style$='toolbar_bk.png);']").hide()
}
问候
利亚姆