2009-01-24 7 views
1

J'ai une page utilisant un ReportViewer de Microsoft Reporting. Le rapport semble fonctionner mais la page me donne deux erreurs javascript, les deux "Sys" est indéfini ".Pourquoi le script inclut-il que ScriptResource.axd n'est pas rendu sur certaines pages?

En examinant la sortie html, je peux voir que cette page ne charge pas le fichier ScriptResource.axd. Voici la sortie générée à partir de la < forme runat = "server">:

pages normales:

<script src="/ScriptResource.axd?d=A7zLSiYT-QHoLdLnJ4qcSxAMYrwOyrYaDQLr4063d4z_oKYldDliKqXbyFe5lSU_BLW1XY7gevJ3qbD0cmlGqFb4n7TXEUowGbFVlAH6qW01&amp;t=ffffffff81a772fc" type="text/javascript"></script> 
<script type="text/javascript"> 
//<![CDATA[ 
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.'); 
//]]> 
</script> 

<script src="/ScriptResource.axd?d=A7zLSiYTQHoLdLnJ4qcSxAMYrwOyrYaDQLr4063d4z_oKYldDliKqXbyFe5lSU_pP3jafRTfoGWk6oNhALZysXq7AipBxlz6Hg1wbpmi5swSCq2gf8Ifthok9c1Qyjf0&amp;t=ffffffff81a772fc" type="text/javascript"></script> 
<div> 

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" 
    value="/wEWBwLqzd6VBwLe87a+BQLe87a+BQKMhJXjCwLDhbnwDQLDhc2YCALFibnGClZTK/SWwK6x3zLDgngtDRWbwIkm" /> 
</div> 

Et voici la page avec un contrôle ReportViewer:

<script src="/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=9.0.30729.1&amp;Name=Microsoft.Reporting.WebForms.Scripts.ReportViewer.js" type="text/javascript"></script> 
<script type="text/javascript"> 
//<![CDATA[ 
function RVClientImageToggle(shouldEnable, image1Id, image2Id) 
{ 
var enableHover = document.getElementById(image1Id); 
var disableHover = document.getElementById(image2Id); 
if (enableHover == null || disableHover == null) 
    return; 
if (shouldEnable) 
{ 
    enableHover.style.display = ""; 
    disableHover.style.display = "none"; 
} 
else 
{ 
    disableHover.style.display = ""; 
    enableHover.style.display = "none"; 
} 
}//]]> 
</script> 

<div> 
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWGQLrm7KJCwLe87a+BQLe87a+BQKMhJXjCwLDhbnwDQLDhc2YCALFibnGCgL4rMvOCQL4rK/NCQKp9KnKBgKp9I3JBgKQitCjCALzoZ6fCQLzoYKeCQLC2pe+DgLC2vu8DgKsmc6MBgLYo/6MDgKsz4boDQLCqZGDBgL97pJQAv3u/vQHAv3u6pkPAv3u1r4GAv3ugpYJAOTw7r3aR/RClkJpkBgvgn/NGjI=" /> 
</div> 

Là, vous pouvez voir - aucune référence aux fichiers axd

Le tag < ScriptManager> produit dans les deux cas:

<script type="text/javascript"> 
//<![CDATA[ 
Sys.WebForms.PageRequestManager._initialize('ctl00$ctl00$smManager', document.getElementById('aspnetForm')); 
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], [], 90); 
//]]> 
</script> 

Et c'est là l'erreur javascript est disponible en - référencement l'objet Sys

Alors qu'est-ce qui déclenche la sortie différente de < forme runat = « server »>?

Répondre

1

Je n'ai toujours pas de réponse, mais n'a pas trouvé une solution de contournement sur Internet ici: http://forums.asp.net/p/1318006/2617880.aspx#2617880

Si je jammer le spectateur de rapport dans un contrôle utilisateur, et alors que le contrôle de l'utilisateur sur la page, la balise form rendra correctement. Remarque: J'utilise aussi des pages maîtres, alors peut-être que cela a quelque chose à voir avec ça. La balise de formulaire est dans la page maître, puis j'ai une page de contenu avec un contrôle utilisateur dans la section de contenu, puis le ReportViewer dans le contrôle utilisateur. Ça marche.

Ce qui n'a pas fonctionné était une page maître avec une balise de formulaire (runat = serveur), et une page de contenu avec un ReportViewer dans la section de contenu. C'est le cas dans lequel aucun des scripts ASP.NET AJAX n'a ​​été inclus, conduisant à des erreurs 'Sys is unsdefined'.

Questions connexes