У меня есть проект, в котором я создал пару пользовательских элементов управления: Легенда и Легенда.
На моей веб-странице я получаю сбор информации, которую хочу загрузить в элементы управления LegendItem (настройка основного текста и информации о цвете). Затем добавьте эти элементы в элемент управления Legend (элемент управления Legend имеет панель на ней и Я ссылался на пользовательский контроль Legend на самой веб-странице.
Мне трудно понять, как правильно получить дескриптор элемента управления LegendItem, чтобы я мог получить доступ к его свойствам и установить их.
Я могу предоставить код, если вам это нужно, но я застрял и нуждаюсь в некоторой помощи! Спасибо, что нашли время, чтобы прочитать это!
Я не уверен, что вы пытаетесь сделать. Если вам нужно добавить свой контроль (статически) на свою страницу, вот как вы это делаете:
<% @Страница Язык = "С#" % >
<% @Register TagPrefix = "uc" TagName = "Spinner" src= "~\Controls\Spinner.ascx" % >
<HTML>
< тело >
< form runat = "server" >
< uc: Spinner id = "Spinner1" Runat = "сервер" MinValue = "1" MaxValue = "10" /" >
</формa >
</тело >
Как только у вас есть это, в коде позади вы можете найти элемент управления по идентификатору, применить его к своему типу и затем сделать что угодно. BTW, MinValue и MaxValue - это свойства, определенные в вашей реализации управления.
Теперь, если вы хотите динамически создавать экземпляр элемента управления "на лету", вам необходимо использовать метод LoadControl на своей странице. Этот метод возвращает экземпляр вашего элемента управления, но чтобы что-то сделать с ним, вам нужно добавить его в контрольную коллекцию страницы, например:
page.Controls.Add(mycontrol)
.
Вы можете сделать это в любом месте жизненного цикла страницы перед событием OnRender. Просто имейте в виду, что как только вы это сделаете, элемент управления начнет играть догоняющий - он будет пропущен через все события жизненного цикла страницы, которые он пропустил. Также имейте в виду, что если страница отправлена назад, вам необходимо убедиться, что элемент управления установлен точно так же, как и к тому времени, когда обрабатывается viewstate.
В качестве побочного примечания я думаю, что выполнение такого рода рабочих серверов немного устарело. Вам будет лучше делать что-то с JQuery и любимыми
Вы можете просто ввести пользовательский элемент управления с помощью LoadControl.
Затем установите свои свойства.
Затем добавьте элемент управления в элемент управления закладок asp.net, который у вас есть в элементе управления Legend.
LegendItem li = (LegendItem)LoadControl("LegendItem.aspx");
li.name = "bob"
legend.placeholder.controls.add(li);
Ключом к пониманию динамических элементов управления является понимание жизненного цикла страницы. Вы должны убедиться, что ваши элементы управления создаются во время события page_init, чтобы гарантировать правильную обработку элемента управления на стороне сервера.
Отличный элемент управления, который доступен для управления динамически создаваемыми элементами управления, - это динамический элемент управления.
Это так странно. Моя страница aspx.cs не распознает мой элемент управления, если я не дал пользователю управление пространством имен. Теперь я могу создавать объекты, накладывать их правильно и т.д.
Спасибо всем за попытку.