मैं नेस्ट ASP.NET listviews का एक सेट में प्रदर्शित करने के लिए अपने डेटा का उपयोग परत, widget.Manufacturer के आधार पर वर्गीकृत, से विजेट का एक सेट को पुनः प्राप्त करने की जरूरत के साथ एक IGrouping <> दिखाना।नेस्टेड listviews
समस्या यह है कि (जहां तक मैं कह सकता हूं) नेस्टेड लिस्ट व्यू दृष्टिकोण के लिए मुझे इसका उपयोग करने से पहले डेटा को आकार देने की आवश्यकता होती है, और मैं लेने के लिए सबसे अच्छा तरीका नहीं समझ सकता। सबसे अच्छा मैं अब तक के साथ आने कर लिया है तो तरह मेरे डेटा का उपयोग परत में एक LINQ क्वेरी डाल करने के लिए है:
var result = from widget in GetAllWidgets(int widgetTypeID)
group widget by widget.Manufacturer into groupedWidgets
let widgets = from widgetGroup in groupedWidgets
select widgetGroup
select new { Manufacturer = groupedWidgets.Key, Widgets = widgets };
बेशक
, अनाम प्रकार के आसपास पारित नहीं किया जा सकता है, ताकि नहीं करता ' टी काम नहीं डेटा संलग्न करने के लिए एक कस्टम वर्ग को परिभाषित करना गलत तरीका है। वहाँ किसी तरह मैं चीजों की ASP.NET तरफ समूहीकरण प्रदर्शन कर सकते हैं है? मैं DAL तक पहुंचने के लिए ऑब्जेक्टडेटा स्रोत का उपयोग कर रहा हूं।
अपडेट किया गया: ठीक है, मैं एक गुमनाम प्रकार अब और बनाने नहीं कर रहा हूँ, और बदले मेरी दाल ASP.NET पेज के लिए एक IEnumerable<IGrouping<Manufacturer, Widget>>
गुजरता है, लेकिन मुझे लगता है कि मेरे listviews में इस का उपयोग कर सकते हैं?
<asp:ListView ID="ManufacturerListView">
<LayoutTemplate>
<ul>
<asp:Placeholder ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li><asp:Label Text='<%# Eval("Manufacturer.Name") %>' />
<li>
<asp:ListView ID="WidgetsListView" runat="server" DataSource='<%# Eval("Widgets") %>'>
<LayoutTemplate>
<ol>
<asp:PlaceHolder runat="server" ID="itemPlaceholder" />
</ol>
</LayoutTemplate>
<ItemTemplate>
<li><asp:Label Text='<%# Eval("Name") %>'></li>
</ItemTemplate>
</asp:ListView>
</li>
</ItemTemplate>
</asp:ListView>
नोट कैसे WidgetsListView की DataSource
संपत्ति ही है: मैं (काफी इसे पसंद या कुछ और) निम्नलिखित एचटीएमएल प्रस्तुत करना
<ul>
<li>Foo Corp.
<ol>
<li>Baz</li>
<li>Quux</li>
</ol>
</li>
<li>Bar Corp.
<ol>
<li>Thinger</li>
<li>Whatsit</li>
</ol>
</li>
</ul>
मूल रूप से की जरूरत है, मैं बहुत की तरह एक ListView के भीतर एक ListView था आंकड़ों की सीमा। डेटा को दोबारा बदलने के बिना मैं इस कार्यक्षमता को कैसे डुप्लिकेट कर सकता हूं?
इस तरह के जटिल, खेद हो रहा है, तो मैं सिर्फ बजाय एक अलग सवाल बना होना चाहिए।
सलाह के लिए धन्यवाद। मैंने अधिक जानकारी के साथ अपना मूल प्रश्न अपडेट किया। –