Изменены строки из списка объектов? - PullRequest
0 голосов
/ 27 августа 2010

У меня есть форма, где

  Table SelectedItems                Table AvailableItems
 RecordID  CheckBoxID                CheckBoxID     Description
    1           1                         1           'Tomatoes'
    1           2                         2           'Potatoes'   
    1           4                         3           'Mangoes' 
    2           1                         4           'Apples'  
    2           2     
  1. Теперь мне нужно отредактировать SelectedItems для RecordID 1
  2. Для этого я сделал CheckBox перечислите и заполните его AvaialbeItems
  3. Тогда я зациклился и проверил SelectedItems для RecordID 1
  4. Пользователь выбирает несколько новых строк из список доступных (наряду со старыми, он также может отменить выбор)

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

Обе таблицы возвращаются в виде списков бизнес-объектов <>. Как сравнить списки и извлечь только измененные / новые строки?

Пожалуйста, посоветуйте мне. Я использую веб-формы на VSS 2005.

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Когда вы выбираете записи, можете ли вы обновить бизнес-объект (ы) и очистить их? Я имею в виду создание переменной класса, которая будет служить флагом, который вы можете проверить, чтобы увидеть, был ли он изменен или новый. Я думаю, что выбрать новые строки (или старые) вызовет событие, которое можно использовать для изменения бизнес-объекта выбранной строки.

Затем, когда вы просматриваете свои списки, вам просто нужно проверить флаг бизнес-объекта, который выдает статус изменения / нового.

0 голосов
/ 27 августа 2010

Если система уже находится на рабочем сервере и работает стабильно, игнорируйте мой ответ. Если он все еще находится на стадии планирования / проектирования / программирования, я думаю, что небольшое изменение БД сделает все намного проще.

 Table SelectedItems 
RecordID  CheckBoxID  IsSelected
    1           1        true
    1           2        true
    1           3        false
    1           4        true

То есть для определенного RecordID и CheckBoxID вам не нужно запрашивать таблицу, чтобы найти, есть ли соответствующая запись (что означает, что она выбрана). В новом дизайне всегда есть такая запись со статусом IsSelected.

Между тем, этот дизайн также очень прост в обслуживании ваших веб-страниц. То, что вы изменяете, это просто значение IsSelected для определенной строки, вам не нужно заботиться о "О, мне нужно удалить одну строку или добавить одну?" «Данные этого ряда грязные или нет?» ... все становится проще.

...