私が取り組んでいる ASP.NET サイトには、いくつかの SSRS レポートがページとして含まれています。これらのページのすべてで (他のページではなく)、マスター ページの RadMenu ドロップダウンが機能しません。これは、Report View ページが Page_Init イベントでスクリプト マネージャーを介して部分レンダリングを無効にしていることが原因のようです。
残念ながら、元の開発者はもう利用できず、部分的なレンダリングが無効になった理由を確実に知っている人は誰もいないようです. 部分レンダリングを有効にしても何も壊れないように見えますが、選択がどれほど意図的に行われたかを考えると、それは正当化できないようです。
これは Page_Init イベントのコードです。
protected void Page_Init(object sender, EventArgs e)
{
ScriptManager sm = ScriptManager.GetCurrent(this);
if (sm != null)
{
sm.EnablePartialRendering = false;
}
}
RadMenu は私のマスター ページにあり、次のようになります。
<telerik:RadMenu ID="MasterPageMenu" runat="server" Height="20px" Style="top: 0px;
left: 0px;" Width="100%" CssClass="RadMenuLevel" EnableRoundedCorners="True"
OnItemDataBound="MasterPageMenu_ItemDataBound" OnClientItemClicking="onClicking"
DataTextField="title" DataNavigateUrlField="url">
<DefaultGroupSettings OffsetX="11" OffsetY="2" />
</telerik:RadMenu>
すべてのレポートは、ReportViewer.aspx ページを使用して読み込みます。コードは次のとおりです。
<%@ Page Title="Reports" Language="C#" MasterPageFile="~/HPTS.Master" AutoEventWireup="true"
CodeBehind="ReportViewer.aspx.cs" Inherits="HPTS.HPTSAdmin.ReportViewer" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<style type="text/css">
.heightTest
{
height: auto;
}
.fullheight
{
margin-bottom: 120px;
}
#testdiv
{
display:table;
width:1250px;
height:auto;
}
</style>
<script language="JavaScript" type="text/JavaScript">
window.onload=function resize(){
var viewer = document.getElementById("testdiv");
var htmlheight = document.documentElement.clientHeight;
viewer.style.height = (htmlheight - 120) + "px";
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphHPTS" runat="server">
<telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxyforReports" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="ReportViewerControl">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="ReportViewerControl" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManagerProxy>
<div id="testdiv" style="width: 100%">
<br />
<rsweb:ReportViewer ID="ReportViewerControl" runat="server" Font- Names="Verdana"
Font-Size="8pt" ProcessingMode="Remote" CssClass="fullheight" Height="8.5in"
Width="100%" SizeToReportContent="true">
<ServerReport ReportPath="" ReportServerUrl="" />
</rsweb:ReportViewer>
</div>
</asp:Content>