Экспорт GridView на панели обновления в Excel, а затем обновление сетки - не работает - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть сетка в панели обновления. Я могу экспортировать его в Excel, используя HTTP-ответ, и он экспортирует необходимые данные и открывает файл во всплывающем окне, которое работает нормально.

Но, как только данные экспортированы, я должен обновить вид сетки, указывая, что эти данные были экспортированы. Я убедился, что для источника данных заданы правильные данные и вызвана привязка данных. Но экспорт в Excel не приводит к обновлению экрана.

Если я запускаю обновление, меняя раскрывающийся список или что-то еще, я вижу, что данные изменились. Я попробовал UpdatePanelID.Update () - все еще напрасно.

Так, как вызвать обновление gridview после экспорта в Excel?

Заранее спасибо.

Мой код для экспорта:

        var excelXml = GetExcelXml(dsInput, filename);
        response.Clear();
        response.AppendHeader("Content-Type", "application/vnd.ms-excel");
        response.AppendHeader("Content-disposition", "attachment; filename=" + filename);
        response.Write(excelXml);
        response.Flush();

protected void btnExport_Click(object sender, EventArgs e)
{
    try
    {

        if (list.Count() > 0)
        {


            ds.Tables.Add(dtForExport);
            ExcelHelper.ToExcel(ds, filename); //To Excel method is described above.
            LoadGridDetails();//Binds the new values

        }

    }
    catch (Exception ex)
    {
        lblStatus.Text = "Error Exporting to Excel";
    }
}//Screen is not refreshed after executing this line.

1 Ответ

1 голос
/ 10 сентября 2011

То, что вы называете «Popup», мне кажется, что вы говорите о всплывающем окне загрузки браузера. Так что в этом случае это не сработает, потому что вы уже сделали Response.Clear и больше не можете обновлять свою сетку.

Мое предложение таково: вы можете открыть реальное всплывающее окно, которое означает: window.popup, и это всплывающее окно выполнит всю работу по ответу, или вы также можете вставить некоторый java-скрипт в вашу кнопку «экспорт», чтобы сделать две вещи: выполните функцию post-back to export и подождите X миллисекунд, чтобы вызвать щелчок какой-нибудь скрытой кнопки, просто чтобы сделать второй post-back и выполнить обновление.

Надеюсь, это поможет

...