Динамическое создание многих экземпляров пользовательских контролей ASP.NET: как мне его создать и где будут мои конфликты? - PullRequest
2 голосов
/ 06 августа 2010

Я не видел, чтобы это реализовывалось ранее в ASP.NET, но я думаю о пользовательском интерфейсе, который будет выглядеть и действовать следующим образом:

Концептуальный обзор

  • Загружен TabControl, а первая вкладка содержит сетку
  • При двойном щелчке по строке создается новая вкладка с подробным описанием записи
  • Содержимое вкладки / записи подробно создается пользовательским контролем
  • Можно создать много вкладок, и поэтому будет создано много экземпляров usercontrol

Я знаю, что ASP.NET переименует мои (runat="server") идентификаторы для меня, и я могу использовать серверный код jQuery или ASP.NET для работы с идентификаторами ... Мои опасения:

  • Как я могу попросить ASP.NET сгенерировать уникальный идентификатор для каждого N-го экземпляра моего usercontrol (для визуализации в заполнителе)
  • Как мне на самом деле создать этот дополнительный экземпляр элемента управления?
  • Что еще мне нужно иметь в виду?

Поскольку я не хочу постбэков, я рассматриваю возможность своей реализации на основе Callback Control в ComponentArt и использования пользовательских контролей ASP.net для достижения этого эффекта. Это позволит мне сделать большинство вещей, которые требуют обратной передачи, но не обновит все элементы на странице ... только раздел, содержащий пользовательский элемент управления. При этом я не привязан к конкретной реализации.

1 Ответ

1 голос
/ 12 августа 2010

Вам следует обратиться к методу Page.LoadControl. Это работает хорошо, и, насколько я помню, вы помещаете заполнители на свою страницу и загружаете элементы управления в PlaceHolders, вот как вы управляете идентификаторами.

При таком подходе не очень хорошо получается, когда ваш элемент управления вызывает события, которые должен обрабатывать объект Page. Если ваш контроль самодостаточен, у вас не должно возникнуть проблем.

Это может помочь вам начать: http://www.codeproject.com/KB/aspnet/LoadingUSerControl.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...