rahulbhadouria Ответов: 3

Динамически добавляйте несколько кнопок и заполняйте заполнитель при нажатии


Уважаемый друг,

Я создаю несколько столбцов с одной кнопкой в каждом столбце на странице asp динамически.
Но, как генерируется событие щелчка этих нескольких кнопок.

Например: Я ввел 3 столбца и отправил его,затем три столбца будут добавлены с одной "кнопкой" и одним "держателем места" в каждом столбце.Теперь я хочу ,чтобы, когда пользователь нажимает на эту кнопку, некоторые текстовые поля добавлялись к уважаемому владельцу места.

Пожалуйста помогите мне друзья,,,,


То, что я сделал, находится в приведенном ниже коде,,,

но когда я нажимаю на динамически созданную кнопку, все динамически добавленные кнопки исчезают.

protected void common_click(object sender,EventArgs e)
    {
             
        int cellCtr;
        // Current cell counter
        int cellCnt;
        int btnId=1;
        int phId=1;
       
        cellCnt = int.Parse(TextBox1.Text);

        for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
            {
                // Create a new cell and add it to the row.
                HtmlTableCell tCell = new HtmlTableCell();
                RowMain.Cells.Add(tCell);

                PlaceHolder ph = new PlaceHolder();
                Button btn = new Button();
                btn.ID = "btn" + btnId;
                btn.Text = "AddControls";
                btn.Click += new EventHandler(btn_Click);
                ph.ID = "ph" + phId;

                tCell.Controls.Add(btn);
                tCell.Controls.Add(ph);
                TextBox txt = new TextBox();
                ph.Controls.Add(txt);
                btnId = btnId++;
                phId = phId++;
                
            }
        
    }

    void btn_Click(object sender, EventArgs e)
    {
        Button isButton1 = (Button)sender;
        string test = isButton1.ID;
        Response.Write("Was it Button1 = " + test );

        
        //Here I want to add some controls to the particular place holder.
    }

3 Ответов

Рейтинг:
23

Sandeep Mewara

как генерируется событие щелчка этих нескольких кнопок.
Когда вы создаете кнопку, добавьте к ней обработчик событий, а затем обработайте то же самое событие на своей странице.

Пример:

Button btn1 = new Button();
btn1.ID = "btnONE";
btn1.Text = "Press Me";
btn1.Click += new EventHandler(btn1_Click);
MyPlaceHolder.Controls.Add(btn1);

Где-то на той же странице:
void btn1_Click(object sender, EventArgs e)
{
    // Handle the event. Do your stuff.
}


rahulbhadouria

Но это для одной кнопки, которая создается динамически..
Но я хочу несколько кнопок.

AhsanS

Решение, данное Сандипом, - это всего лишь пример для начала работы. Для создания нескольких кнопок вы можете следовать приведенному выше примеру, и вы должны дать другой идентификатор, и это все. Вы можете создать столько, сколько захотите. Но убедитесь, что идентификатор отличается.

rahulbhadouria

То, что я сделал, находится в приведенном ниже коде,,,,

но когда я нажимаю на динамически созданную кнопку, все динамически добавленные кнопки исчезают.


охраняемых недействительными common_click(объект отправителя,EventArgs в электронной)
{

инт cellCtr;
// Счетчик текущих ячеек
инт cellCnt;
int btnId=1;
int phId=1;

cellCnt = инт.Синтаксический Анализ(Текстовое Поле Textbox1.Текст);

для (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
{
// Создайте новую ячейку и добавьте ее в строку.
HtmlTableCell tCell = новый HtmlTableCell();
Роумейн.Ячейки.Добавить(tCell);

Заполнитель ph = новый заполнитель();
Кнопка btn = новая кнопка();
бтн.ID = "btn" + btnId;
бтн.Text = "AddControls";
бтн.Click += new EventHandler(btn_Click);
водородный показатель.ID = "ph" + phId;

компания "Tcell".Управления.Добавить(btn);
компания "Tcell".Управления.Добавить(ph);

btnId = btnId++;
phId = phId++;

}

}

btn_Click недействительным(объект отправителя, EventArgs в электронной)
{
Кнопка isButton1 = (кнопка)отправитель;
строку "test" = isButton1.Идентификатор;
Ответ.Напишите("была ли это кнопка 1 =" + Тест );

//Здесь я хочу добавить некоторые элементы управления к конкретному держателю места.
}

Рейтинг:
18

AhsanS

Взгляните на код, который я изменил.

protected void common_click(object sender,EventArgs e)
    {
             
        int cellCtr;
        // Current cell counter
        int cellCnt;
        int btnId=1;
        int phId=1;
       
        cellCnt = int.Parse(TextBox1.Text);

        for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
            {
                // Create a new cell and add it to the row.
                HtmlTableCell tCell = new HtmlTableCell();
                

                PlaceHolder ph = new PlaceHolder();
                Button btn = new Button();
                btn.ID = "btn" + btnId;
                btn.Text = "AddControls";
                btn.Click += new EventHandler(btn_Click);
                ph.ID = "ph" + phId;

                ph.Controls.Add(btn);
                tCell.Controls.Add(ph);
                RowMain.Cells.Add(tCell);
                btnId = btnId++;
                phId = phId++;
                
            }
        
    }

    void btn_Click(object sender, EventArgs e)
    {
        Button isButton1 = (Button)sender;
        string test = isButton1.ID;
        Response.Write("Was it Button1 = " + test );

        //Here I want to add some controls to the particular place holder.
    }


rahulbhadouria

Все та же проблема, проблема в том, что когда я нажимаю на динамически созданную кнопку,ее событие не срабатывает.....

И все элементы управления становятся все исчезло

AhsanS

Я предполагаю, что RowMain-это HtmlTableRow.
Вы добавляете это к основному столу?

rahulbhadouria

Да, вы правы...

Рейтинг:
1

Member 13897174

Может быть, вы добавляете кнопки поверх предыдущих кнопок? Обязательно расположите их подальше друг от друга или бок о бок.


Richard Deeming

Спрашивали, отвечали и решали ШЕСТЬ ЛЕТ НАЗАД.

Придерживайтесь ответов на недавние вопросы.