ASPX многоразовые компоненты - PullRequest
2 голосов
/ 17 февраля 2010

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

При написании веб-сайта на C # .NET я понял, что есть несколько компонентов, которые мне нужно использовать на разных страницах, с более или менее одинаковыми функциями, и я хочу найти способ написать их один раз, а затем использовать повторно.

Например, окно поиска или несколько GridView, которые я использую на нескольких страницах. Эти «компоненты» построены из нескольких элементов управления ASPX, методов, может быть, некоторых JavaScript и т. Д. Они слишком сложны, чтобы их можно было просто дублировать, и слишком специфичны, чтобы их можно было создавать в качестве элементов управления.

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

  1. iframe - по сути, со всеми его проблемами у меня работает нормально (для окна поиска). Я написал одну страницу aspx / cs со всем поведением поиска (это довольно сложно) - и затем на каждой странице, где я хочу это окно поиска, я добавляю iframe.

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

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

Есть идеи? Я пропустил что-нибудь тривиальное решение.

Ответы [ 4 ]

3 голосов
/ 17 февраля 2010

IFrame не является решением проблемы с составом и повторным использованием компонентов.

Мастер-страницы - это инструмент композиции более высокого уровня, не связанный с вашим вопросом.

UpdatePanels, опять же, не является решением для повторного использования.

Составьте UserControl или заварите чашку кофе и научитесь писать ServerControl .

0 голосов
/ 17 февраля 2010

Как я первоначально прокомментировал, либо используйте ascx (пользовательские элементы управления), либо, если вы хотите виджетировать свои страницы, вы можете придерживаться aspx и использовать плагин UFrame (jQuery).

0 голосов
/ 17 февраля 2010

Как правило, UserControls делают то, что вы описываете, они имеют свой собственный .ascx файл разметки со связанным .cs файлом codebehind.

И, конечно, вы можете выставить свойства в вашем UserControl, которые вы можете декларативно установить из его родительского элемента управления, который может быть другим пользовательским элементом управления или самой страницей ASP.NET.

0 голосов
/ 17 февраля 2010

Я думаю, что лучший способ сделать это, потому что у вас есть мульти-контроль внутри вашего компонента, создающий пользовательский контроль

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

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