2010-07-12 6 views
0

J'utilise Response.Write, Response.End pour exporter vers Excel/Word/csv. Y a-t-il un moyen de le faire et aussi de pouvoir changer le texte sur la page en même temps? Par exemple, j'ai un contrôle dans un UpdatePanel que je veux rendre visible/invisible.Mise à jour de la page ASP.NET après Excel Export

Répondre

2

Mettez à jour votre page via l'action AJAX et, en cours de processus, écrivez du javascript qui appelle une page/un gestionnaire distinct qui effectue l'exportation réelle.

if (exporting) 
{ 
    string cacheID = Guid.NewGuid().ToString(); 
    Session[cacheID] = ...data or query to export... 
    ScriptManager.RegisterStartupScript(Page, 
      Page.GetType(), 
      cacheid, 
      "window.location = '/download.ashx?cacheid=" + cacheID + "';", 
      True); 
} 
+0

Cela ne fonctionnera pas dans une batterie de serveurs. – SLaks

+2

@SLaks - dépend de l'endroit où vos sessions sont stockées. Dans un environnement en cluster ou à charge équilibrée, je suppose que vous stockez les sessions dans la base de données. Dans ce cas, cependant, je stockerais probablement les moyens de générer la requête plutôt que les résultats de la requête. – tvanfosson

Questions connexes