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

StackOverflow https://stackoverflow.com/questions/866258

Вопрос

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

ImageButton imgbtnRemove = new ImageButton();
imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.ImageUrl = items.remove;
imgStatus.AlternateText = "Remove";
tRow.Cells[3].Controls.Add(imgbtnRemove);

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

string returnData = Request.Form.ToString();

но итерация по форме контролирует изображения:

if (c is System.Web.UI.WebControls.Button ||
c is System.Web.UI.WebControls.ImageButton)

не находит его.Я могу найти его, если вручную вставлю:

imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick);

в Page_Load, а затем захватите его в событии щелчка:

switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...

но поскольку новые строки добавляются и удаляются, с программной точки зрения это становится довольно некрасиво.Я думаю, что должно быть элегантное решение для динамического создания и извлечения кнопок изображений «на лету» из кода на стороне сервера.Я много копал, но это меня поставило в тупик.

Заранее спасибо...

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top