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

Одна из моих больших проблем с ASP.NET заключается в том, что это затрудняет организацию элементов управления страницы, кроме чрезмерного количества префиксов идентификаторов. В прошлом я делал большие и сложные шаги, чтобы попытаться облегчить это, но мне нужно решение, которое проще реализовать. Итак, мне интересно:

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


person Taudris    schedule 21.12.2010    source источник
comment
Возможно, вы просто хотите изучить пользовательские элементы управления ASCX?   -  person    schedule 21.12.2010
comment
Я уже знал о них, мне просто было интересно, есть ли другой способ сделать это, который мог бы быть более автономным. Но в то же время хранить сложную страницу в одном файле — не лучшая идея. Я думаю, что мне просто придется согласиться на использование общедоступных пользовательских элементов управления и поместить их в то же пространство имен, что и страница, которая их использует.   -  person Taudris    schedule 21.12.2010


Ответы (2)


Нет. Вы должны создать пользовательский элемент управления в его собственном файле .ascx.

Хотя, если вы хотите создать веб-элемент управления, вы можете определить его в любом файле .cs/.vb, который вы хотите. Хотя ради того, чтобы ваши коллеги могли найти ваш код, я все равно могу предложить, чтобы он жил в собственном файле.

ПРИМЕЧАНИЕ. Я бы поставил под сомнение обоснованность «трудно организовать элементы управления страницей за пределами чрезмерного количества идентификаторов префикса». Для этого предназначены шаблонные элементы управления (репитер, список данных и т. д.). Они реализуют INamingContainer и, таким образом, позволят вы должны назвать элементы управления с тем же именем, но с другой областью действия. Есть хорошая информация здесь...

person Reddog    schedule 21.12.2010

Должен быть определен существующий пользовательский элемент управления ASP.NET, и вы можете динамически загружать его. Это примерно столько же, сколько динамических возможностей с пользовательскими элементами управления, которые у вас есть. Вы также можете использовать настраиваемые элементы управления, которые действительно дают вам полный контроль над визуализируемым пользовательским интерфейсом. Однако отсутствие полных идентификаторов может привести к последующим проблемам с интеграцией клиент/сервер, в зависимости от того, что вы пытаетесь сделать.

Кроме того, для настройки идентификатора можно использовать свойство ClientIDMode ASP.NET 4.0: http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

person Brian Mains    schedule 21.12.2010