Повторитель для комплектов дисплеев
Вопрос
Мне нужно отобразить что-то вроде того, что показано ниже.
Введите
- Тип А, позиция 1
- Тип А, пункт 2
- Тип А, пункт 3
Тип Б
- Тип Б, позиция 1
- Тип Б, позиция 2
- Тип Б, позиция 3
Тип С
- Тип C, позиция 1
- Тип C, позиция 2
- Тип C, позиция 3
Все данные поступают из набора данных со столбцами «Тип» и «Имя элемента».Теперь простым решением было бы создать повторитель для каждого «Типа» и фильтровать набор данных по каждому «Типу».Однако я хотел бы использовать только один повторитель, и проблема в том, что мне нужен какой-то способ распознавать, когда у каждого нового раздела есть заголовок.
<div>[Header][Item]</div>
[Header] = <b>Type A</b><br />
[Item] = Type A Item 1
Таким образом, только первый элемент каждого типа получает элемент заголовка, а всем остальным присваивается пустая строка.
Кто-нибудь знает какие-нибудь хитрости, которые могут помочь?
Решение
Вместо создания повторителя для каждого типа, как насчет вложенного повторителя?
http://www.codeproject.com/KB/aspnet/AspNetNestedRepeaters.aspx р>
Попробуйте это. Вам все еще понадобится более одного повторителя, но в этом случае вам потребуется только два, и вам не нужно будет создавать по одному для каждого типа (как вы опасались), а скорее один для типов и один вложенный. в нем для предметов. Ссылка выше должна дать вам хорошую отправную точку для дальнейших исследований.
Другие советы
Хорошо, я только что придумал решение.Хотя он довольно грязный.
Я создал глобальную переменную для отслеживания заголовков.Переменная представляет собой список строк.OnItemDatabind проверяю, находится ли элемент заголовка в глобальном списке.
Если элемент не существует, я добавляю его в список и отображаю заголовок.В противном случае элемент заголовка пуст.
Пока это работает, но я не знаю, что я чувствую по этому поводу.
Редактировать:Мне интересно, может ли другой элемент управления работать лучше в этом случае...
Предполагая, что они отсортированы по типу, вам не нужно хранить весь список: только текущий элемент.
Ищите дополнительную информацию по отчетам о контроле / прерывании.