Динамически добавить строку в GridView / DataGrid / Repeater? - PullRequest
1 голос
/ 04 февраля 2011

Я хочу создать «таблицу», которую будет заполнять пользователь, с неизвестным количеством строк.

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

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

+ ------- + --------- +
+ Предмет + Цена +
+ ------- + -------- +
+ Бобы + 0,99 +
+ ------- + --------- +

Затем после завершения первого рядаЯ хочу сгенерировать еще одну строку на лету и т. Д.

Какой лучший контроль для этого?Я довольно новичок в asp.net, поэтому не уверен, стоит ли мне использовать Gridview / DataGrid / Repeater или что.(Не уверен, что он имеет какое-либо отношение, но у текстового поля элемента есть связанный с Ajax AutoCompleteExtender.)

Любые указатели были бы очень кстати.

РЕДАКТИРОВАТЬ

Одна вещь, которую я забылупомянуть, что GridView (или что-то еще) не имеет данных, связанных с ним, когда он загружается.Не уверен, влияет ли это на решение.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

GridViews не очень хороши для добавления строк в строке. Вам, вероятно, придется сделать что-то немного хакерское. Возможно, вам удастся настроить источник данных в виде сетки так, чтобы в конце ваших реальных данных всегда была еще одна пустая строка, а затем просто убедитесь, что последняя строка в сетке установлена ​​в режим редактирования. каждый раз, когда gridview заканчивает связывание. Тогда вам придется перехватить действие «Обновить» и заставить его фактически вставить вместо обновления. Тогда возникает вопрос, хотите ли вы также позволить пользователю редактировать существующие строки: при редактировании существующей строки вам нужно будет удалить «пустую» строку, потому что вы не можете иметь две редактируемые строки одновременно. Это сложно, но вы могли бы это сделать.

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

Я не уверен, что бы я выбрал в данный момент.

0 голосов
/ 04 февраля 2011

вы, безусловно, можете использовать ретранслятор, но если вы определите структуру данных как сетку (например, вы планируете или планируете добавить новые столбцы в будущем), GridView, вероятно, будет лучшим.

...