当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET:将DataTable呈现为字符串(HTML)的最短方式?

如何解决《ASP.NET:将DataTable呈现为字符串(HTML)的最短方式?》经验,为你挑选了2个好方法。

将DataTable转换为字符串(用HTML格式化)的最短方法是什么?

不能接受以编程方式绑定到UI控件并呈现到ASP.NET页面.不能依赖于ASP.NET页面生命周期.

这个目的无关紧要,但要满足好奇心:这是用于执行大量DataTable处理的算法中的日志记录/调试/转储目的.

谢谢!



1> bashmohandes..:

您可以使用GridView,DataGrid等ASP.net控件并使用StringWriter将它们渲染到StringBuilder中,不需要使用ASP.net页面,这是Console中的一个简单示例

class Program
{
    static void Main(string[] args)
    {
        IList persons = new List()
            {
               new Person{Id = 1, Name="Test Name 1"},
               new Person{Id = 2, Name="Test Name 2"}
            };

        GridView gridView = new GridView();
        StringBuilder result =  new StringBuilder();
        StringWriter writer = new StringWriter(result);
        HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
        gridView.DataSource = persons;
        gridView.DataBind();

        gridView.RenderControl(htmlWriter);

        Console.WriteLine(result);
    }


}


class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}



2> Cody C..:

我通过我的应用程序使用此功能.这很简单

  static public string ConvertDataTableToHTMLString(System.Data.DataTable dt, string filter, string sort, string fontsize, string border, bool headers, bool useCaptionForHeaders)
        {

            StringBuilder sb = new StringBuilder();
            sb.Append("");
            if (headers)
            {
                //write column headings
                sb.Append("");
                foreach (System.Data.DataColumn dc in dt.Columns)
                {
                    if (useCaptionForHeaders)
                        sb.Append("");
                    else
                        sb.Append("");
                }
                sb.Append("");
            }

            //write table data
            foreach (System.Data.DataRow dr in dt.Select(filter,sort))
            {
                sb.Append("");
                foreach (System.Data.DataColumn dc in dt.Columns)
                {
                    sb.Append("");
                }
                sb.Append("");
            }
            sb.Append("
" + dc.Caption + "" + dc.ColumnName + "
" + dr[dc].ToString() + "
"); return sb.ToString(); }

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有