Самый чистый способ реализовать сворачиваемые записи в таблице, сгенерированной с помощью asp: Repeater?

StackOverflow https://stackoverflow.com/questions/77082

  •  09-06-2019
  •  | 
  •  

Вопрос

Прежде чем кто-либо предложит вообще отказаться от тегов таблиц, я просто изменяю эту часть очень большой системы, поэтому с моей стороны было бы неразумно пересматривать структуру таблиц (приложение заполнено похожими таблицами).

Это веб-приложение на C # .NET - данные поступают из веб-сервиса и отображаются на экране в виде таблицы.Строки таблицы генерируются с помощью asp:Repeaters, так что строки красиво чередуются.Ранее таблица содержала по одному элементу данных на строку.Теперь, по сути, в таблице есть подзаголовки...Первая строка - это дата, вторая строка показывает строку данных, а все последующие строки являются строками данных до тех пор, пока не поступят данные с новой датой, и в этом случае появится еще одна строка подзаголовка.

Сначала я подумал, что могу немного схитрить и сделать это довольно легко, чтобы сохранить текущую структуру ретранслятора - мне просто нужно заполнить некоторые ячейки пустой строкой, чтобы в них не появлялось никаких данных.Теперь, однако, мы рассматриваем один из этих коллапсеров + / - рядом с каждой датой, чтобы они могли свернуть все данные.Мой разум сразу же переключился на скрытие строк при нажатии кнопки...но я не знаю, как скрыть строки из стоящего за ними кода, если только строка не имеет уникального идентификатора, и я не уверен, сможете ли вы сделать это с помощью повторителей.

Я надеюсь, что я хорошо выразил проблему.Я уверен, что найду способ, но я только что увидел этот сайт на slashdot и подумал, что стоит попробовать :)

Это было полезно?

Решение

Когда вы создаете строку в событии привязки данных, вы можете добавить уникальный идентификатор, используя, скажем, идентификатор поля данных или что-то еще, что вы используете, чтобы сделать его уникальным.

Затем вы могли бы использовать метод на стороне клиента для расширения collapse, если вы хотите заполнить его данными в начале, переключив параметр style.display в Javascript для элемента строки таблицы.

Другие советы

просто оберните содержимое шаблона элемента в asp:Panel, тогда у вас будет уникальный идентификатор. Затем бросьте в какой-нибудь jquery для придания пикантности ;)

Редактировать:только что заметил, что вы используете таблицу.поместите идентификатор в строку.затем переключите его.

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