2010-08-19 13 views
7

पर टाइप स्ट्रक्चर की जेनेरिक सूची बाध्यकारी मुझे दोहराने के लिए एक सामान्य सूची को बांधने की कोशिश करने में कुछ समस्या हुई है। जेनेरिक सूची में इस्तेमाल किया जाने वाला प्रकार वास्तव में एक संरचना है।एक पुनरावर्तक

मैं एक बुनियादी उदाहरण नीचे का निर्माण किया है:

struct Fruit 
{ 
    public string FruitName; 
    public string Price; // string for simplicity. 
} 


protected void Page_Load(object sender, EventArgs e) 
{ 

    List<Fruit> FruitList = new List<Fruit>(); 

    // create an apple and orange Fruit struct and add to List<Fruit>. 
    Fruit apple = new Fruit(); 
    apple.FruitName = "Apple"; 
    apple.Price = "3.99"; 
    FruitList.Add(apple); 

    Fruit orange = new Fruit(); 
    orange.FruitName = "Orange"; 
    orange.Price = "5.99"; 
    FruitList.Add(orange); 


    // now bind the List to the repeater: 
    repFruit.DataSource = FruitList; 
    repFruit.DataBind(); 

} 

मैं फल मॉडल करने के लिए एक सरल struct है, हम दो गुण जो FruitName और मूल्य हैं। मैं 'फ्रूटलिस्ट' प्रकार की एक खाली जेनेरिक सूची बनाकर शुरू करता हूं।

मैं फिर संरचना (सेब और नारंगी) का उपयोग करके दो फल बनाते हैं। फिर इन फलों को सूची में जोड़ा जाता है।

अंत में, मैं पुनरावर्तक के डेटास्रोत संपत्ति के लिए सामान्य सूची ...

मार्कअप इस तरह दिखता है बाँध:

<asp:repeater ID="repFruit" runat="server"> 
<ItemTemplate> 
    Name: <%# Eval("FruitName") %><br /> 
    Price: <%# Eval("Price") %><br /> 
    <hr /> 
</ItemTemplate> 

मैं फल नाम देखने की उम्मीद और एक क्षैतिज नियम से अलग, स्क्रीन पर मुद्रित मूल्य।

पल मैं वास्तविक बंधन से संबंधित एक त्रुटि हो रही है पर ...

**Exception Details: System.Web.HttpException: DataBinding: '_Default+Fruit' does not contain a property with the name 'FruitName'.** 

मैं भी यकीन है कि अगर यह काम कर सकते हैं नहीं कर रहा हूँ? कोई विचार?

धन्यवाद

+1

रैंडम ध्यान दें, ListView वर्ग बड़े पैमाने पर क्षमता के रूप में पुनरावर्तक प्रतिस्थापित करता है है। –

+0

@ क्रिस मैरिसिक टिप के लिए धन्यवाद, मैं अब सूची दृश्य के बारे में पढ़ रहा हूं, वास्तव में अच्छा दिखता है: http://weblogs.asp.net/scottgu/archive/2007/08/10/the-asp-listview-control- भाग -1-बिल्डिंग-ए-उत्पाद-लिस्टिंग-पेज-क्लीन-सीएसएस-ui.aspx – Dal

उत्तर

9

आपको अपने सार्वजनिक क्षेत्र को सार्वजनिक संपत्ति में बदलने की जरूरत है।

बदलें इस: public string FruitName;

करने के लिए:

public string FruitName { get; set; } 

नहीं तो आप fruitName निजी बनाने और इसके लिए एक सार्वजनिक संपत्ति शामिल हो सकते हैं।

private string fruitName; 

public string FruitName { get { return fruitName; } set { fruitName = value; } } 

Here is a link with someone who has had the same issue as you.

+0

यह काम किया! भगवान अब मैं बहुत बेवकूफ महसूस करता हूं, बहुत समझ में आता है, बहुत बहुत धन्यवाद !! :) – Dal

1

त्रुटि तुम सब कुछ आप जानना चाहते हैं बताता है। आपके पास सार्वजनिक क्षेत्र हैं जो फलोंनाम और मूल्य के लिए परिभाषित गुण नहीं हैं।

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