4

我正在使用 Reporting Services 在 ASP.NET 中编写报告。我想隐藏 ReportViewer 的工具栏并拥有自己的“下一页”和“上一页”按钮。有没有办法以编程方式浏览 ReportViewer 页面?是否有“NextPage”和“PreviousPage”等方法?

4

2 回答 2

1

我只是想我会添加到这一点,因为我一直在做类似的事情,并构建了一组 JavaScript(使用 JQuery)函数,您可以在其中传递 ReportViewerID,它允许您添加下一个、上一个、第一个和最后一个等等到您自己的自定义工具栏按钮。只需在文档准备好时使用 ReportViewer_HideToolbar 功能隐藏工具栏。认为值得分享,因为我在昨天搜索几个小时时找不到任何东西。即使它只是某人的起点,至少它更接近并且有帮助:-)

ps 我使用的是 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()
}

问候利亚姆

于 2014-11-13T15:54:52.557 回答
1

如果您隐藏工具栏并拥有自己的页面导航控件,则可以在代码中设置 ReportViewer 的CurrentPage属性。

于 2013-02-18T22:10:34.547 回答