J'ai mis à jour du code pour utiliser la version bêta de la boîte à outils Ajax Control 0911 et, pour une raison quelconque, les extendeurs de panneaux rétractables dynamiquement ajoutés dans le code maintenant provoquent l'erreur suivante dans le jscript côté client ...ASP.NET AJAX Problème
Erreur d'exécution de Microsoft JScript: Sys.ArgumentException: la valeur ne doit pas être nulle pour les contrôles et les comportements. Nom du paramètre: élément
dans ...
$create = Sys.Component.create = function Sys$Component$create(type, properties, events, references, element) {
/// <summary locid="M:J#Sys.Component.create" />
/// <param name="type" type="Type"></param>
/// <param name="properties" optional="true" mayBeNull="true"></param>
/// <param name="events" optional="true" mayBeNull="true"></param>
/// <param name="references" optional="true" mayBeNull="true"></param>
/// <param name="element" domElement="true" optional="true" mayBeNull="true"></param>
/// <returns type="Object"></returns>
var e = Function._validateParams(arguments, [
{name: "type", type: Type},
{name: "properties", mayBeNull: true, optional: true},
{name: "events", mayBeNull: true, optional: true},
{name: "references", mayBeNull: true, optional: true},
{name: "element", mayBeNull: true, domElement: true, optional: true}
]);
if (e) throw e;
if (type.inheritsFrom(Sys.UI.Behavior) || type.inheritsFrom(Sys.UI.Control)) {
if (!element) throw Error.argument('element', Sys.Res.createNoDom);
}
J'accepte que ce n'est une version bêta, mais je suis incapable de trouver soit un travail autour ou même de comprendre la raison pour laquelle ce code assez simple pas travaux plus longs.
code
private Panel GetReportPanel(DataRow dr, ReportParameter[] Params)
{
Panel pnlReport = new Panel();
pnlReport.ID = Uri.EscapeDataString(dr["ReportName"].ToString()) + "_MainReportContainer";
//Report Title Section
var pnlReportTitle = new Panel();
pnlReportTitle.CssClass = "ReportSectionTitle";
var tblReportTitle = new Table();
var trowReportTitle = new TableRow();
var tcellReportTitle = new TableCell();
var imgReportTitleExpand = new Image();
imgReportTitleExpand.ID = Uri.EscapeDataString("img" + dr["ReportName"].ToString() + "DataExpand");
tcellReportTitle.Controls.Add(imgReportTitleExpand);
trowReportTitle.Controls.Add(tcellReportTitle);
tcellReportTitle = new TableCell();
var lblReportTitle = new Label();
lblReportTitle.ID = Uri.EscapeDataString("lnk" + dr["ReportName"].ToString());
lblReportTitle.Text = "Functional " + dr["ReportName"].ToString();
tcellReportTitle.Controls.Add(lblReportTitle);
trowReportTitle.Controls.Add(tcellReportTitle);
tblReportTitle.Controls.Add(trowReportTitle);
pnlReportTitle.Controls.Add(tblReportTitle);
pnlReport.Controls.Add(pnlReportTitle);
//Report Section
var pnlReportSection = new Panel();
pnlReportSection.ID = Uri.EscapeDataString("pnlReportSection" + dr["ReportName"].ToString());
pnlReportSection.CssClass = "ReportSection";
pnlReportSection.ScrollBars = ScrollBars.None;
var pnlInnerReportSection = new Panel();
pnlInnerReportSection.CssClass = "ReportSection";
var rptControl = new ReportViewer();
rptControl.ID = "rpt" + dr["ReportName"].ToString().Replace(' ', '_');
rptControl.ProcessingMode = ProcessingMode.Remote;
rptControl.Width = new Unit("100%");
rptControl.ShowDocumentMapButton = false;
rptControl.ShowParameterPrompts = false;
rptControl.Visible = true;
rptControl.Height = new Unit("500px");
rptControl.AsyncRendering = (bool)dr["ASyncRenderingEnabled"];
rptControl.ServerReport.ReportPath = dr["SSRSReportPath"].ToString();
rptControl.ServerReport.ReportServerUrl = new Uri("http://horoap336/reportserver");
rptControl.ServerReport.SetParameters(Params);
pnlInnerReportSection.Controls.Add(rptControl);
pnlReportSection.Controls.Add(pnlInnerReportSection);
pnlReport.Controls.Add(pnlReportSection);
//Collapsable Panel Extender
var Extender = new AjaxControlToolkit.CollapsiblePanelExtender();
Extender.TargetControlID = pnlReportSection.ID;
Extender.ID = Uri.EscapeDataString(dr["ReportName"].ToString()) + "_Extender";
Extender.CollapsedSize = 0;
Extender.Collapsed = true;
Extender.ExpandControlID = lblReportTitle.ID;
Extender.CollapseControlID = lblReportTitle.ID;
Extender.AutoCollapse = false;
Extender.AutoExpand = false;
Extender.ScrollContents = false;
Extender.TextLabelID = lblReportTitle.ID;
Extender.CollapsedText = "Functional " + dr["ReportName"].ToString() + " (Click To Show Details...)";
Extender.ExpandedText = "Functional " + dr["ReportName"].ToString() + " (Click To Hide Details...)";
Extender.ImageControlID = imgReportTitleExpand.ID;
Extender.ExpandedImage = "~/images/collapse.jpg";
Extender.CollapsedImage = "~/images/expand.jpg";
Extender.ExpandDirection = AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical;
pnlReport.Controls.Add(Extender);
return pnlReport;
}
Ce panneau est ensuite ajouté à un panneau dans le fichier ASPX en utilisant ...
pnlContainer.Controls.Add(GetReportPanel(dr,Params));
fichier Aspx ...
<%@ Page Title="Operations MI Dashboard - Functional Reporting" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="FunctionalReport.aspx.cs" Inherits="TelephonyReport" %>
<%@ 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">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Panel ID="pnlContainer" runat="server">
</asp:Panel>
</asp:Content>
Alors , mes questions sont:
- Y at-il un problème avec mon code que est seulement évident dans la version ultérieure de la boîte à outils?
- Est-ce que quelqu'un sait de une solution de contournement que je peux essayer?
- Quelqu'un peut-il expliquer pourquoi ce problème se produit uniquement dans la dernière version?