2009-07-31 12 views
9

मैं एक ASP.NET पुनरावर्तक के डेटास्रोत सेट कर रहा हूं इस प्रकार है:बेनामी प्रकार

rptTargets.DataSource = from t in DB.SalesTargets select new { t.Target, t.SalesRep.RepName }; 

अब, पुनरावर्तक के OnDataBound घटना में, मैं कैसे से RepName और लक्ष्य गुण प्राप्त कर सकते हैं अज्ञात प्रकार e.Item.DataItem में निहित है?

कई धन्यवाद

उत्तर

19

आप DataBinder.Eval उपयोग कर सकते हैं:

string repName = (string)DataBinder.Eval(e.Item.DataItem, "RepName"); 
string target = (string)DataBinder.Eval(e.Item.DataItem, "Target"); 
+0

बिल्कुल सही, धन्यवाद रिचर्ड। – staterium

13

मैं इस सवाल का एक साल पहले उत्तर दिया गया है पता है, लेकिन मैं सिर्फ इस समस्या के लिए एक .NET 4.0 समाधान मिल गया है।

आप एक पुनरावर्तक के लिए अपने गुमनाम प्रकार बाँध है, तो आप इस तरह OnDataBound घटना में गुण का उपयोग कर सकते हैं:

dynamic targetInfo = e.Item.DataItem as dynamic; 

string repName = targetInfo.RepName; 
string target = targetInfo.Target; 
+0

क्या होगा यदि मुझे targetInfo से सदस्य पर कोई शर्त डालना है जैसे कि (targetinfo.RepName == "")? एक शर्त कैसे लगाएं? क्योंकि यह मुझे अपवाद देता है कि इसमें – LojiSmith

+0

जैसा कोई प्रकार नहीं है, उस स्थिति में आपको शायद 'string repName = targetInfo.RepName' जैसा कुछ करना चाहिए; अगर (repName == "") {...} ' –