Вопрос

Мне нужно отобразить что-то вроде того, что показано ниже.

Введите

  1. Тип А, позиция 1
  2. Тип А, пункт 2
  3. Тип А, пункт 3

Тип Б

  1. Тип Б, позиция 1
  2. Тип Б, позиция 2
  3. Тип Б, позиция 3

Тип С

  1. Тип C, позиция 1
  2. Тип C, позиция 2
  3. Тип 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 проверяю, находится ли элемент заголовка в глобальном списке.

Если элемент не существует, я добавляю его в список и отображаю заголовок.В противном случае элемент заголовка пуст.

Пока это работает, но я не знаю, что я чувствую по этому поводу.

Редактировать:Мне интересно, может ли другой элемент управления работать лучше в этом случае...

Предполагая, что они отсортированы по типу, вам не нужно хранить весь список: только текущий элемент.

Ищите дополнительную информацию по отчетам о контроле / прерывании.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top