Пользовательские элементы управления ASP.NET и модель динамических событий

Хорошо, я не уверен, что название полностью соответствует действительности, открыт для предложений!

Я нахожусь в процессе создания настраиваемого элемента управления ASP.NET, это то, что для меня все еще относительно в новинку, поэтому, пожалуйста, терпите меня.

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

Со временем мне нужно будет сделать это более Ajax-y и отзывчивым, поэтому мне нужно будет изменить привязку события для вызова локального Javascript.

Итак, я подумал, что должен иметь возможность переключать «режим» элемента управления, он может либо использовать обратную передачу и сам обрабатывать, либо вы можете указать имена функций Javascript для вызова вместо doPostBack.

  • Что вы думаете об этом?
  • Неправильно ли я подхожу к подъему событий из управления? (полностью открыты для предложений здесь!)
  • Как бы вы подошли к подобной проблеме?

Изменить - уточнить

  • Я создаю настраиваемый визуализированный элемент управления (т.е. наследуемый от WebControl).
  • Мы не используем существующие веб-элементы управления, так как нам нужен полный контроль над отображаемым выводом.
  • AFAIK единственный способ вызвать событие на стороне сервера из настраиваемого визуализированного элемента управления - это вызвать doPostBack из визуализированных элементов (пожалуйста, исправьте, если ошиблись!).
  • ASP.NET MVC - это не вариант.

person Rob Cooper    schedule 12.09.2008    source источник


Ответы (2)


Очень странно. Вы используете серверные элементы управления и пользовательские элементы управления ASP.NET, но не используете веб-элементы управления? А вы вызываете __doPostBack вручную?

Вы любите поступать жестко?

Если бы я все еще использовал модель управления сервером, а не MVC, я бы поставил элементы управления ASP.NET Ajax на эту присоску и положил бы это конец. То, что вы делаете, похоже на установку воздуходувки на модель T. Это может быть весело и интересно, но после того, как вы выполнили всю тяжелую работу, что у вас действительно есть?

person Community    schedule 12.09.2008
comment
Я согласен. Зачем вы воссоздаете колесо, потому что MS уже сделал это за вас. Вы просто тратите больше времени на написание кода. - person David Basarab; 12.09.2008

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

Например: RegisterClientScriptBlock.

С нетерпением ждем возможности поиграть с этим еще, не стесняйтесь приглашать увлеченных людей!

person Rob Cooper    schedule 22.09.2008
comment
Что, если вы обернете свой настраиваемый элемент управления в ASP.NET AJAX UpdatePanel на странице ASPX? - person Bret Walker; 27.09.2008