вывести файл CSV для всплывающего окна с помощью C # в ASP.Net - PullRequest
2 голосов
/ 22 июня 2011

Я пытаюсь вывести файл CSV во всплывающем окне.Я могу вывести CSV в главном окне, но не во всплывающем окне.Я использую тот же код.Например;Я использую форму для вывода файла CSV.Когда эта форма является основным окном, может выводить файл CSV.Когда я использую эту форму как всплывающее окно, она не может выводиться.Как я могу это сделать?

Это моя функция вывода CSV:

public void OutputCSV(DataTable dtValue, string strFilename)
{

        if (TextUtility.IsNullOrEmpty(strFilename))
        {
            throw new I01Exception(Enums.ExType.System, "9909_35");
        }

        DataTable dt = dtValue;
        StringBuilder sb = new System.Text.StringBuilder();
        string strCh = ",";

        //項目名
        for (int k = 0; k < dt.Columns.Count; k++)
        {
            sb.Append("\"" + dt.Columns[k].Caption + "\"" + strCh);
        }
        sb.Remove(sb.Length - 1, 1);

        //データ
        foreach (DataRow row in dt.Rows)
        {
            sb.AppendLine(string.Empty);
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                sb.Append("\"" + row[i].ToString() + "\"" + strCh);
            }
        }

        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Buffer = true;
        HttpContext.Current.Response.AppendHeader("content-disposition", string.Format("attachment; filename={0}", HttpUtility.UrlEncode(strFilename + ".csv")));
        HttpContext.Current.Response.ContentType = "text/comma-separated-values";
        HttpContext.Current.Response.ContentEncoding = Encoding.GetEncoding("shift-jis");
        HttpContext.Current.Response.Write(sb.ToString());
        HttpContext.Current.Response.Flush();
        HttpContext.Current.ApplicationInstance.CompleteRequest();
        HttpContext.Current.Response.End();

    }

Ответы [ 2 ]

0 голосов
/ 27 июня 2011

Исходя из ответа Саймона Томпсона (хороший ответ Саймона).

Я думаю, что вы подходите к этому не с той стороны.Всплывающее окно - это не то, что создается на стороне сервера, а то, что создается на стороне клиента, либо в чистом html, либо в javascript.

Так, например:

<a href="http://google.com" target="_blank">open google in a popup</a>

Вот некоторыеподробнее о всплывающих окнах: http://www.quirksmode.org/js/popup.html

Учебное пособие по quirksmode - полезное введение, однако для реализации я бы не стал использовать этот подход, а вместо этого использовал бы более «ненавязчивый» подход (но я рассмотрю этот вопрос позжеу вас есть представление об основах всплывающих окон).

0 голосов
/ 27 июня 2011

просто добавьте href с tartget = "_ new", указывающим на ваш URL с веб-страницы.Если вам нужно всплывающее окно в Windows, лучший вариант - это использовать jquery pop libary, который они принимают по URL-адресу externla.Если вы пытаетесь использовать нативное всплывающее окно JavaScript, это диалоговое окно только для текста ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...