2009-12-22 17 views
6

एएसपी में: ListView मैं आइटम ऑब्जेक्ट के भीतर एक संपूर्ण ऑब्जेक्ट को आइटम नियंत्रण में पास करना चाहता हूं, न केवल वर्तमान ऑब्जेक्ट की एक ही संपत्ति। जबकि "द बॉडी" दस्तावेज़ की संपत्ति है,Eval(): सूची दृश्य

<asp:ListView ID="answers" runat="server"> 
    <LayoutTemplate> 
     <div id="itemPlaceholder" runat="server" /> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <div> 
      <uc2:DocumentHeader runat="server" Document="Eval(%# Eval("this") %> /> 
       <p><%# Eval("Body") %></p> 
     </div> 
    </ItemTemplate> 
</asp:ListView> 

DocumentHeader के दस्तावेज़ संपत्ति पूरे दस्तावेज़ वस्तु की उम्मीद:

यहाँ कोड मैं काम करना चाहता हूँ है।

जाहिर है, मैं सिर्फ दस्तावेज़ के भीतर एक नई संपत्ति बना सकता हूं या अपनी इच्छित संपत्ति के साथ एक नई कक्षा उत्पन्न करने के लिए LINQ क्वेरी का उपयोग कर सकता हूं, मैं सिर्फ यह जानना चाहता हूं कि क्या मैं चाहता हूं कि एक आसान, अधिक प्रत्यक्ष तरीका है ।

उत्तर

9

आप <% # कंटेनर.डेटाइटम%> का उपयोग कर संदर्भ ऑब्जेक्ट को बाध्य कर सकते हैं। आपको शायद इसे "दस्तावेज़" की अपेक्षा करने की आवश्यकता होगी।

<asp:ListView ID="answers" runat="server"> 
    <LayoutTemplate> 
     <div id="itemPlaceholder" runat="server" /> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <div> 
      <uc2:DocumentHeader runat="server" Document="<%# Container.DataItem %>" /> 
      <p><%# Eval("Body") %></p> 
     </div> 
    </ItemTemplate> 
</asp:ListView> 
+2

ऐसा करता है। मुझे आइटम डालने की ज़रूरत नहीं थी, जो स्वचालित रूप से किया गया था। – spaetzel

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