powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / WebControl с нуля
4 сообщений из 4, страница 1 из 1
WebControl с нуля
    #33881934
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем нужно срочно написать свой веб контрол с возможностью <ItemTemplate></ItemTemplate> с нуля... просто пишу свой движок... надо всё запихать в ДЛЛ и при использовании в другом проекте поменять ему только ItemTemplate часть.. и всё... ВОПРОС !! ???
Как сделать свой веб контрол с ItemTemplate и как туда допустим вставить TextBox-сы с кнопками...???
Всё хочу реализовывать в коде... *.ASCX мне не подходят !
...
Рейтинг: 0 / 0
WebControl с нуля
    #33881957
Dronopotamus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, <Аноним>, Вы писали:

А>Вообщем нужно срочно написать свой веб контрол с возможностью <ItemTemplate></ItemTemplate> с нуля... просто пишу свой движок... надо всё запихать в ДЛЛ и при использовании в другом проекте поменять ему только ItemTemplate часть.. и всё... ВОПРОС !! ???
А>Как сделать свой веб контрол с ItemTemplate и как туда допустим вставить TextBox-сы с кнопками...???
А>Всё хочу реализовывать в коде... *.ASCX мне не подходят !

мсдн How to: Create Templated ASP.NET User Controls уже читали?... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
WebControl с нуля
    #33882200
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот накатал всё что надо как теперь его отрендерить ???

[ToolboxData("<{0}:CoreMainMenu runat=server></{0}:CoreMainMenu>")]
public class CoreMainMenu : System.Web.UI.WebControls.WebControl
{
/// <summary>
/// Описываем шаблон контейнера для главного меню.
/// </summary>
private ITemplate itemTemplate = null;
[TemplateContainer(typeof(IntemContainer))]
public ITemplate ItemTemplate
{
get
{
return itemTemplate;
}
set
{
itemTemplate = value;
}
}

public class IntemContainer: Control, INamingContainer
{
private string i_modkey;
private string i_modtitle;

internal IntemContainer(string modkey, string modtitle)
{
i_modkey = modkey;
i_modtitle = modtitle;
}

/// <summary>
/// Возвращает ключь на текущий модуль.
/// </summary>
public int ModKey
{
get
{
return i_modkey;
}
}

/// <summary>
/// Возвращает название модуля.
/// </summary>
public String ModTitle
{
get
{
return i_modtitle;
}
}
}

protected override void RenderContents(HtmlTextWriter output)
{
if (itemTemplate != null)
{
string[] fruits = { "О КОМПАНИИ", "Услуги", "Цены", "Водка" };
for (int i = 0; i < fruits.Length; i++)
{
IntemContainer container = new IntemContainer(i, fruits[i]);
itemTemplate.InstantiateIn(container);
}
}
}
}
...
Рейтинг: 0 / 0
WebControl с нуля
    #33882604
Dronopotamus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, <Аноним>, Вы писали:

А>Вот накатал всё что надо как теперь его отрендерить ???

как-то так


        protected override void CreateChildControls()
        {
            if (itemTemplate != null)
            {
                string[] fruits = { "О КОМПАНИИ", "Услуги", "Цены", "Водка" };
                for (int i = 0; i < fruits.Length; i++)
                {
                    IntemContainer container = new IntemContainer(i, fruits[i]);
                    itemTemplate.InstantiateIn(container);
                    Controls.Add(container);
                }
            }
        }

        public override void DataBind()
        {
            EnsureChildControls();
            base.DataBind();
        }

имхо контролы создавать в методе render — поздновато :)
если хочешь чтобы в коде аспнет можно было писать
<CoreMainMenu>
<ItemTemplate>
//тут описать шаблон
</ItemTemplate>
</CoreMainMenu>
то стоит добавить атрибут PersistenceMode(PersistenceMode.InnerProperty)
к проперти ItemTemplate
и аттрибуты ParseChildren(true), PersistChildren(false) к самому CoreMainMenu... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / WebControl с нуля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]