2010-07-12 2 views
0

Я использую Response.Write, Response.End для экспорта в Excel/Word/csv. Есть ли способ сделать это, а также иметь возможность изменять текст на странице одновременно? Например, у меня есть элементы управления в UpdatePanel, которые я хочу сделать видимыми/невидимыми.Обновление страницы ASP.NET после экспорта Excel

ответ

2

Обновите свою страницу с помощью действия AJAX и, в процессе, напишите некоторый javascript, который вызывает отдельную страницу/обработчик, выполняющий фактический экспорт.

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

Это не будет работать в ферме серверов. – SLaks

+2

@SLaks - зависит от того, где хранятся ваши сеансы. Я бы предположил, что в кластерной или сбалансированной по нагрузке среде вы будете хранить сеансы в базе данных. Однако в этом случае я, вероятно, сохраню средства для генерации запроса, а не результаты запроса. – tvanfosson