Если у меня есть вложенный ListView, и я вызываю связанную таблицу в LinQ, как мне его сортировать, не прибегая к событию ItemDataBound родителя?Могу ли я определить порядок сортировки по умолчанию в LinQ
псевдокоде (ОБНОВЛЕНО раствором):
<asp:ListView ID="lv" runat="server" OnItemDataBound="lv_ItemDataBound" >
<LayoutTemplate>
<!-- Product Category Stuff -->
<asp:PlaceHolder Id="itemPlaceholder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<asp:ListView ID="lvInner" runat="server" DataSource='<%# <%# ((Category)Container.DataItem).Products.OrderBy(p => p.Description) %> %>'>
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>Item Stuff</li>
</ItemTemplate>
</asp:ListView>
</ItemTemplate>
</asp:ListView>
Возможно, метод обманчиво прост, но я хочу, чтобы внутренние продукты быть отсортированы по полю. Я не вижу способ сделать это декларативно, поскольку LinQ создает этот запрос «на лету», если я не ошибаюсь и не сортирую.
Любые мысли?
UPDATE
Обновленного пример следующий:
<%# ((Category)Container.DataItem).Products.OrderBy(p => p.Description) %>
Надеется, что это помогает кто-то другое!
Это может звучать глупо ... но я даже не думал о том, что ... или быть более точным ... Я не понимал, что ты можешь это сделать. Благодарю. Тестирование сейчас. – Armstrongest
На втором взгляде это не представляется возможным. Могу ли я использовать Eval для оценки выражения строк? Я получаю эту ошибку: DataBinding: «OrderBy (p => p» не является допустимым индексированным выражением. – Armstrongest
GOT IT! То же самое, но я сделал это следующим образом: <% # ((Категория) Container.DataItem). Продукты.OrderBy (p => p.Description)%> Кажется, нужно работать! – Armstrongest