До сих пор я пробовал отображать содержимое каталога как динамически созданный WebControls.Button. Эти кнопки имеют событие onclick, определенное в коде C#.
Это плохая идея по следующим причинам:
создание новых динамических элементов управления после обратной передачи (нажатие на папку) предотвращает работу любого события onclick, добавленного к кнопкам подкаталога. Это связано с тем, что элементам управления необходим уникальный идентификатор, чтобы обработка событий работала правильно.
Позвольте мне объяснить это на примере:
- При первой загрузке страницы -> каждому отображаемому каталогу присваивается идентификатор (1–7) и событие onclick.
- Открытие папки Событие «Европа» с идентификатором 1 -> onclick запускается -> подкаталоги будут загружены в коде, отображены и получат идентификатор (1- ..) и назначенное событие onclick.
- Открытие подпапки «Андорра» с идентификатором 1 -> событие onclick запускается -> но теперь будет открыта родительская папка «Европа», поскольку у нее уже был идентификатор 1.
- Открытие папки «Европа» с идентификатором 1 -> событие onclick запускается -> подкаталоги будут отображаться, но теперь мы назначаем новые идентификаторы (6-..) и событие onclick.
- Открытие папки «Андорра» с идентификатором 6 -> событие onclick не запускается (механизм событий, похоже, запутался в новом идентификаторе) -> вместо этого все добавленные кнопки (каталоги) исчезают со страницы.
У меня действительно больше нет идей, как реализовать простой кликабельный каталог в ASP.NET.
Надеюсь, вы понимаете суть проблемы и, возможно, у вас есть идеи, которыми можно поделиться
Подробнее здесь: https://stackoverflow.com/questions/643 ... lly-adding
Мобильная версия