2012-02-20 2 views
3

Доброе утро,ASP.NET - обнаружение измененных значений в ретрансляторе?

У меня есть страница с ретранслятором. Обычно ретранслятор содержит 250-500 строк.

ItemTemplate содержит 5 элементов управления TextBox и 1 DropDownList. Пользователь может изменить любое из этих значений.

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

Я экспериментировал с событием TextBox.TextChange ... но у меня есть 5 элементов управления TextBox для каждой строки ... Я не хочу обновлять один и тот же элемент пять раз ... так что я ищу что-то лучше ,

Было бы здорово, если бы произошло событие RepeaterItem.SomeValueChanged ... но пока я его не нашел! :-)

У любого есть более «элегантное» решение?

Спасибо!

Глен

+0

Если вы используйте 'GridView' вместо элемента' Repeater', который включен по умолчанию ... – balexandre

+0

@balexandre, вы уверены в этом? –

+0

@balexandre - Я уверен, что есть другие (возможно, лучшие) способы достижения этого (и в будущем мы можем попробовать DataGridView), но сейчас я ищу способ добиться этого с помощью ретранслятора. Благодаря! –

ответ

0

Есть скрытое поле, чтобы отразить значение, которое было бы сказать, что что-то изменилось. При первоначальной привязке данных установите ее значение равным 0. Проведите несколько js для текстовых полей, чтобы они обновили скрытое поле с помощью 1. Затем в событии сохранения btn вам нужно будет интересоваться только тем, что имеет значение 1.

+0

Мне действительно нужно сравнить значения BEFORE и AFTER для каждого элемента управления (TextBox/DropDownList) ... так что это не сработает для меня. Тем не менее, я не совсем ясно сказал, что в первоначальном вопросе (я должен был), и я думаю, что то, что вы предлагаете, имеет смысл, поэтому я отмечаю ваше предложение как «принятый» ответ. Спасибо, что нашли время, чтобы прочитать мой вопрос и предложить решение! –

+0

это может быть плохая идея, но u cn store List в представлении штата. Класс T должен быть помечен как сериализуемый – deostroll

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