2009-06-19 7 views
9

डेटाटेबल को स्ट्रिंग में परिवर्तित करने का सबसे छोटा तरीका क्या है (HTML में स्वरूपित)?एएसपी.नेट: स्ट्रिंग (एचटीएमएल) में डेटाटेबल प्रस्तुत करने का सबसे छोटा तरीका?

प्रोग्रामिंग के लिए यूआई नियंत्रण के लिए बाध्यकारी और एएसपी.NET पृष्ठ को प्रतिपादन स्वीकार्य नहीं है। एएसपी.नेट पेज लाइफसाइकिल पर निर्भर नहीं हो सकता है।

इसका उद्देश्य कोई फर्क नहीं पड़ता, लेकिन जिज्ञासा को पूरा करने के लिए: यह एल्गोरिदम में लॉगिंग/डिबगिंग/डंप उद्देश्यों के लिए है जो बहुत से डेटाटेबल प्रोसेसिंग करते हैं।

धन्यवाद!

उत्तर

16

आप ASP.net उपयोग कर सकते हैं इस तरह के GridView, डेटा ग्रिड के रूप में नियंत्रित करता है और बात उन्हें StringWriter का उपयोग कर StringBuilder में प्रस्तुत करना, इस के लिए ASP.net पृष्ठ का उपयोग करने की आवश्यकता नहीं है, इस कंसोल में

एक सरल उदाहरण है
class Program 
{ 
    static void Main(string[] args) 
    { 
     IList<Person> persons = new List<Person>() 
      { 
       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

नियंत्रण बनाएं, एक HTML राइटर बनाएं, कोई सेटिंग सेट करें या नियंत्रण डेटाबेस करें, फिर HTML राइटर का उपयोग करके रेंडर विधि को कॉल करें।

तब आप लेखक से स्ट्रिंग प्राप्त कर सकते हैं।

संपादित करें: मैंने शुरुआत में प्रश्न को गलत तरीके से पढ़ा और सोचा कि आप एक डाटाग्रिड प्रस्तुत करना चाहते हैं।

एक डेटाटेबल आसानी से अपने एक्सएमएल में प्रस्तुत किया जा सकता है।

आपने HTML के लिए कहा।

यहां एक कंसोल ऐप कोड है जो डाटाग्रिड नियंत्रण का उपयोग करके एक डाटाटेबल प्रस्तुत करेगा।

class Program 
{ 
    static void Main(string[] args) 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("Column1"); 
     dt.Columns.Add("Column2"); 
     dt.Rows.Add("RowValue1", "Field2RowValue1"); 
     dt.Rows.Add("RowValue2", "Field2RowValue2"); 

     DataGrid dg = new DataGrid(); 
     dg.DataSource = dt; 
     dg.DataBind(); 

     StringWriter sw = new StringWriter(); 
     HtmlTextWriter w = new HtmlTextWriter(sw); 

     dg.RenderControl(w); 

     Console.Write(sw.ToString()); 
     Console.ReadLine(); 
    } 
} 
8

मैं इस एप्लिकेशन का उपयोग अपने आवेदन के माध्यम से करता हूं। यह

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("<table border='" + border + "'b>"); 
      if (headers) 
      { 
       //write column headings 
       sb.Append("<tr>"); 
       foreach (System.Data.DataColumn dc in dt.Columns) 
       { 
        if (useCaptionForHeaders) 
         sb.Append("<td><b><font face=Arial size=2>" + dc.Caption + "</font></b></td>"); 
        else 
         sb.Append("<td><b><font face=Arial size=2>" + dc.ColumnName + "</font></b></td>"); 
       } 
       sb.Append("</tr>"); 
      } 

      //write table data 
      foreach (System.Data.DataRow dr in dt.Select(filter,sort)) 
      { 
       sb.Append("<tr>"); 
       foreach (System.Data.DataColumn dc in dt.Columns) 
       { 
        sb.Append("<td><font face=Arial size=" + fontsize + ">" + dr[dc].ToString() + "</font></td>"); 
       } 
       sb.Append("</tr>"); 
      } 
      sb.Append("</table>"); 

      return sb.ToString(); 
     } 
+0

मैंने 10,000+ रिकॉर्ड उचित रूप से बड़ी तालिकाओं के लिए भी इसी दृष्टिकोण का उपयोग किया। –

2

बिल्कुल स्पष्ट यदि यह सिर्फ प्रवेश के प्रयोजनों के लिए है, यह उन्हें XML के रूप में लॉग आउट करने के लिए और अधिक समझ में नहीं कर सकता है - आसान हेरफेर करने के लिए आप की जरूरत है। आपको केवल WriteXml विधि को कॉल करने की आवश्यकता है।

संबंधित मुद्दे