powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в Page_Load вставить свой контрол?
19 сообщений из 19, страница 1 из 1
Как в Page_Load вставить свой контрол?
    #33702281
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть контроль Login.ascx
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public partial class Controls_Login : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
    {
    }
}

Есть страничка default.aspx, на которую в зависимости от условия хочу вставить контрол
Код: plaintext
1.
Controls.Add(???);

Что нужно написать вместо знаков вопросов?
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33702338
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался, спасибо...
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33702354
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поспешил, не работает :(
До сих пор нуждаюсь в подсказке...
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33702361
gerss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
...
UserControl login = LoadControl("Login.aspx");
if (login != null)
  Controls.Add(login);
...

Так попробуй...
Сергей
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33702380
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cannot implicitly convert type 'System.Web.UI.Control' to 'System.Web.UI.UserControl'. An explicit conversion exists (are you missing a cast?)
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33702390
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
Controls.Add(LoadControl("~/Controls/Login.ascx"));

Control 'ctl01_Login' of type 'Login' must be placed inside a form tag with runat=server.
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33702516
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33703248
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня следующая проблема:
хочу сделать сайт, который бы состоял из одной страницы aspx, а все остальное - контролы ascx, которые в зависимости от условий показывались бы на странице.

Контрол я регистирую в Web.config
Код: plaintext
1.
2.
3.
      <controls>
        <add tagPrefix="HeaderControl" tagName="Login" src="~/Controls/login.ascx"/>
      </controls>

На странице пишу
Код: plaintext
1.
2.
3.
4.
    <%if (false)
      { %>
      <HeaderControl:Login ID="Login" runat="server" />
      <%} %>

По идее, этот контол не покажется на странице.
Так оно и есть, но при такой реализации выполняется protected void Page_Load(object sender, EventArgs e) в контроле!!! Этого очень не хочется...

Вот я и хочу контролы закидывать на страницу в Page_Load().
Как это сделать?

И еще. Может кто подскажет иную реализацию идеи?
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33703329
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты ссылку не смотрел? там же описано, как програмно включить контрол в страницу...
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33703563
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу
Код: plaintext
1.
2.
        Control c = LoadControl("~/Controls/Login.ascx");
        Page.Controls.Add(c);
В итоге
Control 'ctl03_Login' of type 'Login' must be placed inside a form tag with runat=server
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33703640
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с С# я на Вы, поэтому приведу пример на VB
Код: plaintext
1.
MyPlaceHolder.Controls.Add(LoadControl("Login.ascx"))
P.S. думаю понятно, что MyPlaceHolder - это обычный PlaceHolder id="MyPlaceHolder"
P.P.S. хе-хе подсмотрел в одном примере ;)
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33703648
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то подумалось, можно и без PH:
Код: plaintext
1.
Me.FindControl("form1").Controls.Add(LoadControl("Login.ascx"))
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33703802
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, vladgrig!!!
Код: plaintext
1.
this.FindControl("form1").Controls.Add(LoadControl("~/Controls/Login.ascx"));
Так все получилось!!!
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33704104
Фотография Galant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего вапще с этими юзер-конролами париццо?

Function LoginElements() as Table
dim t as new Table
...
return t
End Function

потом в любом месте Controls.Add(LoginElements) иле MyTable.Rows(N).Cells(M).Controls.Add(LoginElements).
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33704163
SlavaZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так ты, получается, предлагаешь не использовать дизайнер?
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33704204
Фотография Galant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlavaZvТак ты, получается, предлагаешь не использовать дизайнер?
Йа им вабще не ползуюс.
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33704498
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЙа им вабще не ползуюс.
не гони гусей, а то так получиться, что и студия для тебя ненужна - один тут говорил что в notepad пишет - такой же садо-мазо...
авторА чего вапще с этими юзер-конролами париццо?

Function LoginElements() as Table
dim t as new Table
...
return t
End Function

потом в любом месте Controls.Add(LoginElements) иле MyTable.Rows(N).Cells(M).Controls.Add(LoginElements).
ага, попариться с ивентами для всех контролов, которые попадут в таблицу и, с дизайном таблицы в слепую - куда проще... ;)
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33704762
Фотография Galant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrig авторЙа им вабще не ползуюс.
не гони гусей, а то так получиться, что и студия для тебя ненужна - один тут говорил что в notepad пишет - такой же садо-мазо...

Чесна-чесна. Могу предьявить aspx-ы :) Идеальный ASPX, ПМСМ, должен состоять из одной строки:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="page.aspx.vb" Inherits="My.page"%>

vladgrig
авторА чего вапще с этими юзер-конролами париццо?

Function LoginElements() as Table
dim t as new Table
...
return t
End Function

потом в любом месте Controls.Add(LoginElements) иле MyTable.Rows(N).Cells(M).Controls.Add(LoginElements).
ага, попариться с ивентами для всех контролов, которые попадут в таблицу и, с дизайном таблицы в слепую - куда проще... ;)

Да уш, напейсать addhandler... и скопировать Sub dropDown_Change (...) нуна потратить очень многа времени.
...
Рейтинг: 0 / 0
Как в Page_Load вставить свой контрол?
    #33705387
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неверюююю!!!...
Станиславский
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в Page_Load вставить свой контрол?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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