и снова динамика
От: uaKomar  
Дата: 22.09.05 10:14
Оценка:
Добрый День.

Хотел задать вопрос касательно темы «динамическое создание контролов».
Все что нашел, перечитал, ответа не нашел. Потому и поднимаю эту тему вновь.

На форме Button, при нажатии срабатывает Event:
protected void Button1_Click(object sender, EventArgs e)
{
    DataSet ds = ...
    
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
        ImageButton ImgBut = new ImageButton();
        ImgBut.ImageUrl = "images/bullets.png";
        ImgBut.AlternateText = i;
        ImgBut.Click += new ImageClickEventHandler(ImgBut_Click);
    PlaceHolderConcl.Controls.Add(ImgBut);
}
}


Количество элементов может быть более 1000.

После этого определяю ImgBut_Click:

public void ImgBut_Click(object sender, ImageClickEventArgs e)
{
DataSet ds = ... SELECT ... WHERE id="+((ImageButton)sender).AlternateText);

    DetailsView dv = new DetailsView();
    dv.DataSource = ds;
    dv.DataBind();
    PlaceHolderConcl.Controls.Add(dv);
    
}


Естественно в сокращенном варианте. PlaceHolder на форме присутствует.

Вопрос все тот же. Как отловить событие onclick.
Re: и снова динамика
От: Сим Россия  
Дата: 22.09.05 10:21
Оценка:
Тебе нужно добавлять свои кнопки на страницу всегда, т.к. после постбека они заново не создаются!
Re[2]: и снова динамика
От: uaKomar  
Дата: 22.09.05 10:26
Оценка:
Здравствуйте, Сим, Вы писали:

Сим>Тебе нужно добавлять свои кнопки на страницу всегда, т.к. после постбека они заново не создаются!


то есть фактичеки ответ: "не существуют методы решения данной задачи при которых происходил вызов данного события"?
Re[3]: и снова динамика
От: Козьма Прутков Россия  
Дата: 22.09.05 11:16
Оценка:
> то есть фактичеки ответ: "не существуют методы решения данной задачи при которых происходил вызов данного события"?
безвыходных ситуаций не бывает.
1) пишем процедуру, которая создает нужные контролы и ставит куда-то признак (например, во вьюстейт), что контролы были созданы динамически
2) в Page_Load этот признак проверяется и при нужде вызывается эта процедура
3) когда надо убрать динамически созданные контролы этот флаг сбрасывается и при след постбеке их не будет.
Posted via RSDN NNTP Server 1.9
Да хранит вас господь в сухом прохладном месте...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.