2012-09-03 15 views
11

मान लीजिए कि मैं एक सामान्य प्रकार (यहां: Dictionary<string, string>) को नए एएसपी.NET 4.5 दृढ़ता से टाइप किए गए डेटा बाइंडिंग का उपयोग करके एक पुनरावर्तक को बांधना चाहता हूं।मजबूत टाइपिंग डेटा बाध्यकारी और जेनेरिक?

तो मुझे रिपेटर की मदटाइप संपत्ति के रूप में KeyValuePair<string, string> डालना होगा।

<asp:Repeater id="rpCategories" runat="server" ItemType="System.Collections.Generic.KeyValuePair<string, string>"> 

यहाँ एक स्पष्ट समस्या है: मैं < या > उपयोग नहीं कर सकते itemtype पाठ के भीतर!

कोई इस बारे में कैसे जाएगा? क्या किसी भी तरह से नए डेटा बाध्यकारी मॉडल के साथ जेनरिक का उपयोग संभव है?

+0

उन्हें < और > साथ भागने की कोशिश की? कोई गलती? – sisve

+0

मैंने कोशिश नहीं की है कि पृष्ठ चलाने के दौरान यह काम करेगा, लेकिन वीएस इसे एक त्रुटि के रूप में चिह्नित करता है और इंटेलिसेंस या तो काम नहीं करता है। – magnattic

+0

नहीं, या तो नहीं चलाता है। त्रुटि संदेश स्पष्ट रूप से है कि वीएस प्रकार को पहचानने में असमर्थ है। – magnattic

उत्तर

12

यह मेरे लिए काम करता है:

कोड के पीछे

protected void Page_Load(object sender, EventArgs e) 
     { 
      rpCategories.DataSource = new Dictionary<string, string>() 
      { 
       {"1", "item"},{"2", "item"},{"3", "item"}, 
      }; 
     rpCategories.DataBind(); 
     } 

मार्कअप

<asp:Repeater ID="rpCategories" runat="server" ItemType="System.Collections.Generic.KeyValuePair`2[System.String,System.String]"> 
     <ItemTemplate> 
      <asp:Label ID="Label1" runat="server" Text='<%# Item.Key %>'></asp:Label> 
     </ItemTemplate> 
    </asp:Repeater> 
+0

धन्यवाद, यह काम करता है! – magnattic

+0

इसने एक समस्या का समाधान किया जो मेरे पास लंबे समय से था, धन्यवाद। –

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