powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Kак вывести один контрол несколько раз
13 сообщений из 13, страница 1 из 1
Kак вывести один контрол несколько раз
    #33823823
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется на хмл странице иметь два одинаковых блока.

Создаю контрол и пишу

Код: plaintext
1.
2.
3.
...
form1.Controls.Add(myControl)
....
form1.Controls.Add(myControl)

Выводится только один - последний (логично, два элемента с одинаковым ИД АСП не позволит).
И все таки, как вывести один контрол несколько раз? (или копию его)
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33823835
login555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataList?
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33823923
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как?
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33823930
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынц
P.S. иногда, у меня создаётся впечатление, что у людей либо нет нэта, либо лень сперва поискать ответ самому ;)
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33824136
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тыц оказался примером создания ТРЕХ РАЗНЫХ ЭКЗЕМПЛЯРОВ одного и того же контрола, в том числе ТРИ раза было произведено соединение с базой данных :)

Вопрос же состоял - Pankonкак вывести один контрол несколько раз? (или копию его), под этими словами никак не подразумевались новые соединения с БД (кстати, именно поэтому и был вопрос задан).

Поймите меня правильно пожалуйста -
Kак вывести один контрол несколько раз (или копию его)? При этом, не создавая новых экземляров.

PS. Можно конечно перевести конролы в ХТМЛ-строку, которую запихать в разные литералы, которые и добавить на страницу - Не красивое решение!
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33824314
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторKак вывести один контрол несколько раз (или копию его)? При этом, не создавая новых экземляров.

либо у меня голова не очень варит - либо ты странный парень...
Код: plaintext
1.
2.
Dim c1 As Control = LoadControl("userctrl7_vb.ascx")
Dim c2 As Control = c1
два раза вывести объект (один и тот же - как хочешь ты) на одну и туже страницу - это как пытаться войти в одну и туже реку два раза...
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33824540
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Легко показываем(читай доказываем) первое:

Помещаем в контрол что-лобо заметное (Например, лабел с большими буквами "Object 1" )
пишем рекомендованный выше код
Код: plaintext
1.
2.
Dim c1 As Control = LoadControl("WebUserControl.ascx") - Создаем один экземпляр
Dim c2 As Control = c1 -Делаем обьектную ссылку на только что созданный обьект 
Продолжаю ЛикБез
Код: plaintext
1.
2.
MainForm.Controls.Add(c1) -Добавляем на форму первый контрол
MainForm.Controls.Add(c2) -Добавляем на форму "второй" контрол
Стартуем все это...
В броузере появилось:
Object 1

Тщетно ждем появления второго "Object 1", как это просил странный пареньТребуется на хмл странице иметь два одинаковых блока.А может нужно было в лабеле еще больше буковки использовать??!!
Ну еще подождем, (может там его AJAX с сервера затянет и будет как и "ожидалось" - " Object 1Object 1 "....
Можно еще в Код страницы глянуть...., но и там - нету второго "Object 1".
По истечении допустимого времени ожидания, делаем вывод, что теорема доказана.

P.S. иногда, у меня создаётся впечатление, что либо люди не проверяют свой код, либо пытаются войти в разные одновременно..
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33824770
icesign
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется красивее всего будет так:
protected void Page_Load(object sender, EventArgs e)
{
        Control c1 = Page.LoadControl("~/WebUserControl.ascx");

        Page.Controls.Add(new ControlRenderer(c1));
        Page.Controls.Add(new ControlRenderer(c1));
    }

    public class ControlRenderer : Control
    {
        private Control c;
        
        public ControlRenderer(Control c)
        {
            this.c = c;
        }

        protected override void Render(HtmlTextWriter writer)
        {
            this.c.RenderControl(writer);
        }
    }
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33824883
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
icesign Спасибо за предложение.

Это, практически то, как я получаю ХТМЛ-строку из контрола(тоже через RenderControl и HtmlTextWriter), только надето на класс "контрол". PankonPS. Можно конечно перевести конролы в ХТМЛ-строку, которую запихать в разные литералы, которые и добавить на страницу - Не красивое решение! icesign красивее всего согласен

Но тогда еще вопрос. Как это будет работать для других веб-контролов
Dim myTable As New Table
или их "все" тоже "одеть" в свои классы.... :)

Вообще, я думал найти что-то наподобие свойства(фунции) Clone.... :(


Может уже пора самому написать подобную фунцию (через RenderControl и HtmlTextWriter)....
и использовать это "некрасивое решение"...
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33824912
icesign
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Но тогда еще вопрос. Как это будет работать для других веб->контролов
>Dim myTable As New Table
>или их "все" тоже "одеть" в свои классы....

Эмм... вообще то должно работать для всех веб-контролов. Ведь они все унаследованы от базового класса Control.
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33824927
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА может нужно было в лабеле еще больше буковки использовать??!!
Ну еще подождем, (может там его AJAX с сервера затянет и будет как и "ожидалось" - "Object 1Object 1"....
Можно еще в Код страницы глянуть...., но и там - нету второго "Object 1".

психоз - это нормальное состояние... если уж взялся психовать то психуй обоснованно - там нету не второго "Object 1" а именно первого...
автор
Может уже пора самому написать подобную фунцию (через RenderControl и HtmlTextWriter)....

склонен думать, что это самое правильное решение - сделаешь - отпишись - на сколько оно будет эффективнее простой подгрузки ТРЕХ РАЗНЫХ ЭКЗЕМПЛЯРОВ одного и того же контрола, в том числе ТРИ раза было произведено соединение с базой данных
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33825018
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Момент ...
icesign работать для всех веб-контролов. Ведь они все унаследованы от базового класса Control.Ведь класс public class ControlRenderer : Control определяет новый класс ControlRenderer , который наследует контрол.... А базовый для всех WebControl -ов класс Control "зашит" где то в сборках .НЕТ ...
:(
мы же не сам базовый класс переопеделяем...., мы используем его для наследования... a?



vladgrig там нету не второго "Object 1" а именно первого ...я долго смеялся... :)
...
Рейтинг: 0 / 0
Kак вывести один контрол несколько раз
    #33825031
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя долго смеялся... :)
лучше смеяться, чем психовать LOL :)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Kак вывести один контрол несколько раз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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