2011-12-14 16 views
5

मुझे AutoGenerateColumns के साथ AutoGenerateColumns के साथ GridView मिला है। यह रनटाइम पर DataSet पर कई संभावित स्कीमा में से एक के साथ बाध्य होगा, और मैं प्रत्येक संभावित स्कीमा के लिए ग्रिड और कॉलम सेट अप नहीं करना चाहूंगा।ऑटोजनेर कॉलम के साथ ग्रिड व्यू में डेटा स्वरूपण सही

ग्रिड में कुछ कॉलम कभी-कभी फ़्लोटिंग पॉइंट मान होंगे। ऐसा लगता है कि डिफ़ॉल्ट संख्या स्वरूपण 0.345 को 0.345000 में बदल देता है। क्या डिफ़ॉल्ट संख्या प्रारूप को बदलने का कोई तरीका है, इसलिए यह दशमलव संख्या निर्धारित करता है?

उत्तर

4

आप के बजाय प्रदर्शन प्रयोजनों के लिए चल बिन्दु के अपने स्कीमा में तार इस्तेमाल कर सकते हैं, और प्रारूपण मैन्युअल कुछ इस तरह करते हैं,:

संपादित: LINQ के बिना, आप में पंक्तियों को संशोधित करके एक ही बात कर सकते हैं स्कीमा:

// load source data 
DataSet myData = GetDataSet(); 

// create column for formatted data. 
myData.Tables["MyTable"].Columns.Add("AmountFormatted", typeof(string)); 

// apply formatting 
foreach (DataRow dr in myData.Tables["MyTable"].Rows) 
    dr["AmountFormatted"] = string.Format("{0:0.###}", dr["Amount"]); 

// remove source column and replace with formatted column 
myData.Tables["MyTable"].Columns.Remove("Amount"); 
myData.Tables["MyTable"].Columns["AmountFormatted"].ColumnName = "Amount"; 

सी #, LINQ आधारित समाधान:

var theData = GetDataSchema1(); 
var dataSource = theData.Tables["MyTable"].Select().Select(dr => 
    new { /* select only columns you want displayed, and apply formatting */ 
     MyColumn1 = dr["MyColumn1"], 
     MyColumn2 = dr["MyColumn2"], 
     MyColumn3 = String.format("#.###", dr["MyColumn3"]), 
     MyColumn4 = dr["MyColumn4"], 
     MyColumn5 = dr["MyColumn5"] 
    } 
); 
MyGridView1.DataSource = dataSource; 
MyGridView1.DataBind() 
+0

प्रश्न गलत तरीके से एएसपी.NET 4.0 कहा गया। मैं 2.0 पर हूं (प्रश्न अद्यतन), इसलिए मैं LINQ का उपयोग नहीं कर सकता। :-( –

+0

अद्यतन कोड देखें। – mellamokb

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