Можно ли StreamWrite Результата DataList сделать файл HTML? (ASP.Net)

0

Вот мой примерный код того, что я пытаюсь сделать, можете ли вы привести пример синтаксиса, чтобы сделать это возможным?

Выбор запроса будет запущен для отображения данных в datalist, и после этого, если кнопка нажата, результаты будут записаны в файл HTML.

Загрузка страницы

  protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    DataList();
                }
            }

Список данных

public void DataList()
               {
                 String testcon = System.Configuration.ConfigurationManager.ConnectionStrings["TestConnection"].ToString();
                    MySqlConnection con = new MySqlConnection(testcon );
                    con.Open();
                    MySqlCommand cmd = con.CreateCommand();
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "SELECT * From ExampleTable";
                    cmd.ExecuteNonQuery();
                    DataSet ds = new DataSet();
                    MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                    da.Fill(ds);
                    DataList1.DataSource = ds;
                    DataList1.DataBind();

                    con.Close();
            }

Нажмите кнопку

 protected void Button1_Click(object sender, EventArgs e)
        {
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            using (FileStream fs = new FileStream((path + "\\Sample.html"), FileMode.Create))
            {
                using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8))
                {
                    w.WriteLine("<html>");
                    w.WriteLine("</head>");
                    w.WriteLine("<body>");
                    w.WriteLine("DataList(ItemTemplate)");
                    w.WriteLine("</body>");
                    w.WriteLine("</html>");
                }
                LabelDisplay.Text = "File Successfully Created @ " + ((path + "\\Sample.html"));
            }

        }
  • 0
    RenderControl - это то, что вы ищете?
  • 0
    если RenderControl может получить HTML-строку DataList, то это то, что я ищу.
Показать ещё 5 комментариев
Теги:

1 ответ

2
Лучший ответ

Session ["DataList"] = ds.tables [0];

Вы можете скопировать вставку метод ниже, который преобразует данные в строку html.

protected string ExportDatatableToHtml(DataTable dt)  
{  
    StringBuilder strHTMLBuilder = new StringBuilder();  
    strHTMLBuilder.Append("<html >");  
    strHTMLBuilder.Append("<head>");  
    strHTMLBuilder.Append("</head>");  
    strHTMLBuilder.Append("<body>");  
    strHTMLBuilder.Append("<table border='1px' cellpadding='1' cellspacing='1' bgcolor='lightyellow' style='font-family:Garamond; font-size:smaller'>");  

    strHTMLBuilder.Append("<tr >");  
    foreach (DataColumn myColumn in dt.Columns)  
    {  
    strHTMLBuilder.Append("<td >");  
    strHTMLBuilder.Append(myColumn.ColumnName);  
    strHTMLBuilder.Append("</td>");  

    }  
    strHTMLBuilder.Append("</tr>");  


    foreach (DataRow myRow in dt.Rows)  
    {  

    strHTMLBuilder.Append("<tr >");  
    foreach (DataColumn myColumn in dt.Columns)  
    {  
    strHTMLBuilder.Append("<td >");  
    strHTMLBuilder.Append(myRow[myColumn.ColumnName].ToString());  
    strHTMLBuilder.Append("</td>");  

    }  
    strHTMLBuilder.Append("</tr>");  
    }  

    //Close tags.  
    strHTMLBuilder.Append("</table>");  
    strHTMLBuilder.Append("</body>");  
    strHTMLBuilder.Append("</html>");  

    string Htmltext = strHTMLBuilder.ToString();  

    return Htmltext;  
}  

После этого метода вы можете вызвать этот метод и преобразовать его в html файл, как показано ниже.

 string content = ExportDatatableToHtml((DataTable)Session["DataList"]);
 System.IO.File.WriteAllText(@"C:\sample.html", contents);

Если мой пост помогает решить ваш вопрос, любезно проверьте зеленый тик и вверх этот ответ

  • 0
    Я использую DataList ...
  • 0
    Вы назначаете набор данных праву datalist1.datasource. В этом месте вы можете назначить таблицу набора данных в переменной сеанса, как в моем обновленном ответе.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню