Как сделать атрибут HtmlGenericControl runat = "server". Для доступа к нему из кода? - PullRequest
0 голосов
/ 21 февраля 2012

Я сталкиваюсь со странной проблемой доступа к некоторым HtmlGenericControl, созданным во время выполнения.

Как сделать HtmlGenericControl runat ="server"? Чтобы я мог получить к нему доступ


 HtmlGenericControl myli = new HtmlGenericControl("li");

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Правильно, потому что runat интерпретируется во время компиляции, он фактически создает элемент управления в файле .designer, который в основном то, что вы делаете в себе .cs (код позади). Поэтому, создавая элемент управления во время выполнения, вам нужно вручную создать дерево элементов управления.что-то, что могло бы произойти автоматически, если бы вы использовали конструктор.

Я полагаю, вы бы создали какую-то Структуру, Массив, Словарь и т. д., которые бы отображали список ликов на их отдельные UL, тогда вы можете объединить этив коде, потянув список li по ключу UL, к которому хэшированы li.

Карта списков, если хотите.Таким образом, Map.get ("ulKey") возвращает список li, которые вы можете перебирать и запускать соответствующий код.Имеет смысл?

1 голос
/ 21 февраля 2012

Если вы создаете HtmlGenericControl во время выполнения, это означает управление сервером, и вы можете легко использовать его в своем коде, и если вы хотите использовать любой элемент управления HTML, который существует на странице .aspx в то время, используйте этот способ для преобразовать этот элемент управления HTML в элемент управления сервером.

  1. Добавьте 2 новых свойства в эти элементы управления HTML runat="server" и id="id" в элементе управления HTML.
...