你能在运行时获得reportviewer的参数值吗?

时间:2013-12-21 06:29:23

标签: javascript reporting-services reportviewer web-parts

我对报告服务报告查看器控件有一个非常具体的问题。

我感谢任何帮助。我在客户端使用Javascript是一个新手,但我必须在我的项目中使用它。

要求

我需要在运行时检索嵌入在webpart中的报表查看器控件上的单个参数的当前值。我需要在客户端使用Javascript访问该值。

甚至可以这样做吗?报告查看器似乎没有呈现。

报告浏览器的HTML代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnUnload="UpdatePanel_Unload">
    <ContentTemplate>
            <rsweb:ReportViewer ID="ReportViewer1" runat="server" 
            Font-Names="Verdana" Font-Size="8pt" Height="383px" 
            InteractiveDeviceInfos="(Collection)" ProcessingMode="Remote" 
            WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="757px" 
            SizeToReportContent="True">
        </rsweb:ReportViewer>
    </ContentTemplate>
</asp:UpdatePanel>

1 个答案:

答案 0 :(得分:0)

以下更新工作代码

关键是创建一个自定义数据属性,如此链接中指示的@Fil(http://html5doctor.com/html5-custom-data-attributes/)并从后面的代码传递然后访问$ .cache。并将reportviewer的clientID传递给javascript函数,以获取webpart子控件的当前实例。

<input type="hidden" id="<%= ASP_SSRS.ClientID %>_myDataState" 
onchange="compareUnitValues(this.id, this.parentNode.id, '<%= ReportViewer1.ClientID %>',  '<%= ASP_SSRS.ClientID %>', '<%= btnSendHiddenField.ClientID %>');" />

<script type ="text/javascript">
function compareUnitValues(elemt, parent, reportviewerID, value1, value2) {
  var myDataUnit = $("#" + elemt),
     parentObject = $("#" + parent),
     reportviewerObject = $("#" + reportviewerID),
     ssrs    = $("#" + value1),
     btnSend = $("#" + value2);

  var myDataUnitValue = myDataUnit.val();
  var myDataUnitJSON = jQuery.parseJSON(myDataUnitValue);
  var currentmyDataUnit = myDataUnitJSON.currentUnit.objectId;
  var sessioncurrentObjectId = document.getElementById('<%= hiddenCurrentObjectId.ClientID %>').value;
  ssrs.val(myDataUnitValue);
  var currentReportViewerParam = $("#" + reportviewerID).attr("data-report-param");

  if (currentmyDataUnit != currentReportViewerParam) {
  btnSend.trigger("click");
  }    

}

从代码背后创建自定义数据属性
ReportViewer1.Attributes.Add("data-report-param", parsedObjectId)