Problème après le chargement d'un page [Résolu]

Signaler
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
-
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
-
Bonjour tout le monde,

voilà j'ai un petit problème, comme vous pouvez vous en douter. Je suis en ASP.NET C#, framework 1.1 (oui super vieux, mais mon taff ne veut pas convertir les codes sources, donc bon je dois faire avec...). Bref, j'ai un flux html (tableaux avec données) converti en chaine de caractères qui servira à télécharger le tout au format word. Et donc en fait, on me demande d'indiquer la taille du fichier qui sera téléchargé. J'aurais donc voulu savoir s'il y avait un évènement que je pouvais utilisé après le chargement d'une page, parce que j'ai essayé Page_Dispose, Page_Unload, mais rien ne se passe lorsque j'utilise ces méthodes, bien que dans le code-behind j'ajoute les évènements dans InitializeComponent( )... et si je mets mon code dans l'évènement OnPreRender( ), la taille fait la moitié...

Donc est-ce-qu'il y aurait une âme charitable pour m'apporter son aide s'il-vous-plaît????

Merci beaucoup d'avance.

P.S: voici mon code :

//Convertion du flux html en chaine de caractères
string html = string.Format("<html> {0} </html>",data.Ui.TransformXml(data.LastXml));

//Conversion en tableau de byte de la chaine de caractères
byte[] html_byte = System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(html);

//Conversion de la taille en Ko
tailleFichier = ConvertirTaille(html_byte.Length);

//Affectation de la taille dans le tooltip de mon bouton de téléchargeemnt de fichier et format word
downloadLink.ToolTip = string.Format("Format Word, taille {0}", tailleFichier);

//Méthode ConvertirTaille
public string ConvertirTaille(long taille_octet)
{
    string final_size = String.Empty;
    if ( taille_octet < 1024 )
    {
         final_size = Convert.ToString(taille_octet) + " o";
     }
     if ( (taille_octet/1024) > 1 )
     {
          // 1024 octets = 1 Ko
          final_size = Convert.ToString(taille_octet/1024) + " Ko";
      }
      if ( (taille_octet/1024) >= 1024 )
      {
          // 1048576 octets = 1 Mo
          final_size = Convert.ToString(taille_octet/1048576) + " Mo";
       }
       if ( (taille_octet/1024) >= 1048576 )
       {
           // 1073741824 octets = 1 Go
           final_size = Convert.ToString(taille_octet/1073741824) + " Go";
        }           
        return final_size;
}

6 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
J'ai un peut de mal a comprendre.

Une page web sa taille est la meme du début à la fin du chargement.
A moins que tu inseres des données dessus (zone de saisie, javascript, AJAX)

Pourquoi ne pas passer par javasscript pour calculer la taille de ta zone div par exemple.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut

Les evements de page ne sont pas la pour faire de la mise en forme de données.

Le page load (avec un !isPostBack) suffit pour ce genre de travail

Sinon il faut utiliser les evenemnts des controles de donnees pour faire ce qui est de la mise en forme plus complexe.

* onitem_databound

NB : ConvertirTaille devrait être static
ta methode devrait avoir des else if pour augmenter les performances.

car si > 1 go il passe dans les 3 conditions

Je ne comprends pas trop la relation entre le code et la quesiton.
Peux-tu expliciter le probleme
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

Salut,

merci pour avoir répondu. La relation est que le début de mon code récupère le flux html qui est convertie en chaine de caractères, puis en tableau de byte et enfin j'obtiens la taille récupérée dans la variable "tailleFichier, mais il faudrait que ce code soit exécuté après le chargement complet de la page aspx, car la variable "html" contient tout le futur fichier qui pourra être téléchargé au word. Donc il faudrait que la page soit chargée complètement pour récupérer la bonne taille. Donc, mon problème est de savoir où placer ce code dans ma page .cs, dans quelle méthode en rapport avec la page (comme le Page_Load, Page_Unload, etc..).

J'espère avoir été assez clair...

Merci encore.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
J'ai pas compris le fichier que tu charges c'est avec un controle fileupload ??
Il me manque un bout du probleme.
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

Non non du tout, en fait le fichier est un tableau de données affiché sur une page web. Tout le tableau est récupéré via la variable html qui par exemple, est égal à données1, ----
données2
. Donc voilà après en cliquant sur un bouton télécharger, on obtient un fichier word qui contient les données qui s'affichent comme sur la page web. Maintenant, ce qu'il me faut c'est calculer la taille totale qui sera téléchargé après le chargement complet de la page, donc après que toutes les données soient affichées sur la page web.
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

ouais, je pense que je vais passer par du javascript. Merci pour ton aide.