Вам необходимо развернуть данные. В MySQL это, вероятно, легче всего сделать с помощью union all
:
select tree
from ((select id, 'apple' as tree
from trees
where apple = 1
) union all
(select id, 'banana' as tree
from trees
where banana = 1
) union all
(select id, 'coconut' as tree
from trees
where coconut = 1
) union all
(select id, 'pear' as tree
from trees
where pear = 1
)
) t
where id = 1;
Вы изо всех сил пытаетесь обойти тот факт, что ретранслятор хочет список, и вы хотите дать ему 1 экземпляр. Просто оберните его в новый список * oObj) и двигайтесь дальше. Это делается все время.
Я, конечно, не знаю, что, черт возьми, происходит с этим пользовательским серверным элементом управления. Мне кажется, вы снова слишком стараетесь.
<asp:repeater id="whatever" runat=server>
<ItemTemplate>First Name: <%# DataBinder.Eval(Container.DataItem,"FirstName") %></ItemTemplate>
</asp:repeater>
Я полностью понимаю вашу точку зрения, stibstibstib. Я также хотел бы, чтобы ASP.NET Framework поставлялся с серверным элементом управления на основе шаблонов, таким как ListView, но для одного объекта данных. Кажется ненужным и немного хакерским создавать список из одного элемента, чтобы заставить его работать с Repeater и ListView. Я понимаю, что это работает. Я понимаю, что это простое решение. Но ASP.NET - это фреймворк, и это просто кажется упущением, которое следует исправить. Эта статья http://gadgetopia.com/post/5343 затрагивает ту же концепцию, что существует два основных способа просмотра контента на веб-сайте: как отдельный элемент и как элемент в списке. . Все еще удивлен, что в ASP.NET нет чего-то вроде серверного элемента управления ItemView