Неизвестное возвращаемое количество строк в динамическом повторителе

#c# #asp.net #repeater

#c# #asp.net #ретранслятор

Вопрос:

Возможно, кто-то видел этот пример динамического создания шаблонов в ASP.NET . Я строю свой собственный, очень похожий на этот. Мне интересно, как бы кто-нибудь предложил сделать его более общим, например, не имея возможности определить, сколько элементов будет возвращено через источник с привязкой к данным (item1, item2, item3 и т.д. и т.п.)

Возможно ли это? или порядок исполнения поставит точку в моем колесе динамизма?

 switch (templateType)
            {
                case ListItemType.Header:
                    ph.Controls.Add(new LiteralControl("<table border="1">"  
                        "<tr><td><b>Category ID</b></td>"   
                        "<td><b>Category Name</b></td></tr>"));
                    break;
                case ListItemType.Item:
                    ph.Controls.Add(new LiteralControl("<tr><td>"));
                    ph.Controls.Add(item1);
                    ph.Controls.Add(new LiteralControl("</td><td>"));
                    ph.Controls.Add(item2);
                    ph.Controls.Add(new LiteralControl("</td></tr>"));
                    ph.DataBinding  = new EventHandler(Item_DataBinding);
                    break;   
 

Комментарии:

1. Это совсем не похоже на хорошую идею. Наличие кода, генерирующего HTML, плохо; Наличие кода, определяющего стили, такие как границы и т. Д., Хуже.

2. Это приведенный выше пример MSDN, lol. msdn.microsoft.com/en-us/library/0e39s2ck.aspx

3. Это не делает его хорошим примером.

4. Это лучшая (одна из ссылок из того же плохого примера): msdn.microsoft.com/en-us/library/36574bf6.aspx

5. В этом примере та же проблема, мне нужно знать количество полей, возвращаемых при привязке данных. Это не работает «на лету».