2010-01-11 2 views
0

Код упрощен, чтобы сделать его более понятным.Обновить данные сообщения в onClick в asp.net

Описание

Я пишу пользовательский элемент управления, который использует Controls.Add(), чтобы добавить все управления к югу он хочет.

Скажем, например, мой элемент управления называется «lots_of_text_boxes», и я добавляю минимальное количество текстовых полей и предоставляю кнопку (Controls.Add (кнопка)), которая гласит «добавить новое текстовое поле».

Управление делает красиво. Я нажимаю кнопку, OnLoad (EventArgs e) воссоздает вспомогательные элементы управления, а магия asp.net находит все мои опубликованные данные и заполняет текстовые поля, поэтому я могу их прочитать.

btnAddNew_Click (отправитель объекта, EventArgs e) вызывается для добавления нового текстового поля.

Сначала я попробовал Controls.Add (текстовое поле), но это помещает текстовое поле внизу под кнопкой добавления.

Я могу удалить кнопку, добавить текстовое поле и добавить кнопку, но я не хочу этого делать, потому что это не просто в реальном случае (много связанных кнопок и элементов управления переплетаются).

Что я хочу делать: Number_of_Textboxes_to_show ++; Controls.Clear(); OnLoad (новый EventArgs());

это стирает управление, чтобы начать заново и воссоздать его с помощью новых.

Проблема

потому что PostData была загружена страница перерисовывается, но все данные в полях было потеряно. Я действительно хочу функцию «LoadPostData()», которая проходит через все вспомогательные элементы управления и перезагружает их данные.

Имеет смысл, что данные сообщения все еще находятся в памяти (я надеюсь), и все элементы управления на проходе 2 имеют одинаковые идентификаторы, как на первом (и в предыдущей форме, который был отправлен).

Кто-нибудь видит что-нибудь подобное?

ответ

1

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

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

+0

Проблема заключается в том, что я также удаляю эту кнопку текстового поля рядом с каждым текстовым полем, и я не хочу ничего писать в базу данных, пока пользователь не ударит, потому что я ожидаю, что многие люди откажутся от своего ввода. Я могу пройти через каждый элемент управления и пытаться обновлять его каждый раз, когда я удаляю или добавляю (и есть два типа удаления одного из них в базе данных, потому что я должен знать, чтобы удалить их при сохранении, а один для новых что никогда не спасает). Проблема в том, что мои кнопки удаления и кнопки добавления требуют повторной реализации некоторой логики, которую делает onload. Меня беспокоят ошибки. – Jeff

 Смежные вопросы

  • Нет связанных вопросов^_^