Как отображать интерактивные каталоги на странице aspx без динамического добавления элементов управления в виде подпапокC#

Место общения программистов C#
Ответить
Anonymous
 Как отображать интерактивные каталоги на странице aspx без динамического добавления элементов управления в виде подпапок

Сообщение Anonymous »

Я создал веб-сайт aspx, на котором отображается каталог с его содержимым с FTP-сервера. Если я щелкну папку внутри этого каталога, она должна отобразить содержимое подкаталога и так далее.
До сих пор я пробовал отображать содержимое каталога как динамически созданный WebControls.Button. Эти кнопки имеют событие onclick, определенное в коде C#.
Это плохая идея по следующим причинам:
создание новых динамических элементов управления после обратной передачи (нажатие на папку) предотвращает работу любого события onclick, добавленного к кнопкам подкаталога. Это связано с тем, что элементам управления необходим уникальный идентификатор, чтобы обработка событий работала правильно.
Позвольте мне объяснить это на примере:
  • При первой загрузке страницы -> каждому отображаемому каталогу присваивается идентификатор (1–7) и событие onclick.
Сценарий 1:
  • Открытие папки Событие «Европа» с идентификатором 1 -> onclick запускается -> подкаталоги будут загружены в коде, отображены и получат идентификатор (1- ..) и назначенное событие onclick.
  • Открытие подпапки «Андорра» с идентификатором 1 -> событие onclick запускается -> но теперь будет открыта родительская папка «Европа», поскольку у нее уже был идентификатор 1.
Сценарий 2
  • Открытие папки «Европа» с идентификатором 1 -> событие onclick запускается -> подкаталоги будут отображаться, но теперь мы назначаем новые идентификаторы (6-..) и событие onclick.
  • Открытие папки «Андорра» с идентификатором 6 -> событие onclick не запускается (механизм событий, похоже, запутался в новом идентификаторе) -> вместо этого все добавленные кнопки (каталоги) исчезают со страницы.
Дополнительная информация: чтобы знать, какая кнопка нажата, я сохраняю путь в параметре Button.CommandArgument, поэтому codebehind знает, какой каталог загружать с FTP.
У меня действительно больше нет идей, как реализовать простой кликабельный каталог в ASP.NET.
Надеюсь, вы понимаете суть проблемы и, возможно, у вас есть идеи, которыми можно поделиться :)

Подробнее здесь: https://stackoverflow.com/questions/643 ... lly-adding
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»