Привязка gridviews к viewstate до возможности записи в базу данных

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

Эти данные представляют отношение 1 .. *, поэтому данные вида сетки не могут быть записаны в базу данных, пока не будет создана родительская запись.

Лучший способ, который я нашел для решения этой проблемы, - это использовать viewstate. Однако это решение не кажется мне идеальным. Я также вынужден вручную создать функциональность gridview с помощью OnDeleting, OnUpdating и т. Д., Чтобы я мог управлять связыванием состояния просмотра с gridview.

Есть ли у кого-нибудь какие-либо предложения о том, как лучше справиться с этой ситуацией, кажется, это будет обычным делом?

ОБНОВИТЬ:

Имейте в виду, что эти данные должны присутствовать в течение всех передач.

11.12.2008 00:55:27
2 ОТВЕТА

Используйте DataSet в качестве промежуточного соединения с вашим источником данных. Заполните DataSet вашими данными, а затем привяжите GridView к DataSet, установив в GridView DataMember имя таблицы, к которой он должен быть привязан.

Когда пользователь обновляет таблицы, он добавляет / изменяет записи в DataTables в DataSet. Когда пользователь завершит редактирование и нажмет «Сохранить», ваш код сможет обновить базу данных из наборов данных, либо автоматически с помощью DataAdapter, либо вручную просматривая RowState строк в DataTables.

1
11.12.2008 01:06:27

Используйте DataAdapter и набор данных. Вызовите метод fillschema в адаптере для создания метаданных de (столбцы, ограничения, отношения и т. Д.) В наборе данных. привязать таблицы данных, созданные к различным представлениям сетки. обновите вручную, проверяя каждое состояние строки строки в каждой таблице или вызывайте метод обновления адаптера, чтобы сделать это автоматически. Если вы делаете это автоматически, вам нужно определить команды для вставки, удаления и обновления в адаптере.

0
11.12.2008 01:16:59