2010-05-17 3 views
1

Je pose peut-être une question très fondamentale et je suis désolé pour cela.rapport de multi-cristal 9.0 dans asp.net 3.5

J'ai une application web qui est en quelque sorte un portail de reporting. J'ai une page ReportViewer.aspx qui a le contrôle crystalreportviewer dessus, et j'utilise la même visionneuse pour montrer différents rapports. Les rapports sont faits par quelqu'un d'autre, donc j'ai juste un fichier .rpt que j'ai inclus dans mon projet.

Je donne le rapport dynamique datasource donc il n'y a pas de données statiques de liaison. (En passant les paramètres dynamiquement ainsi)

Les rapports ont généralement plus d'une page. Le problème est que lorsque je passe à la page suivante, il y a un postback et il fait de nouveau toutes les liaisons de données.

Si je sauvegarde l'objet reportdocument dans une session et que je vérifie IsPostback et que je le retire de la session, cela fonctionne correctement.

La question est de savoir si c'est la bonne façon de le faire. coz si j'ouvre un nouvel onglet et voir le même rapport je finirai par perdre mon premier rapport ... (je pourrais éviter cela en faisant une gestion de session whacky comme passer un guid dans la chaîne de requête, puis récupérer l'objet de rapport correct) est-ce toujours la bonne façon?

des exemples de la façon dont il est fait serait vraiment super ...

Cheers,

Oz

Répondre

1

Eh bien, vous gardez la ReportDocument en session et le lier à la CrystalViewer si PostBack. Le point important cependant est de faire tout cela dans Page_Init au lieu de Page_Load autrement les rapports de cristal multipages seront bloqués sur la page 2 lorsque vous cliquez sur le bouton suivant ...