title: ListView modified from outside source before submit
body: <p>I have a list view that contains for this example lets say 5 rows. The list view is in a form and has a AjaxSubmitLink for deletion of a row.</p>
  
  <p>The data that loads comes from a loadable detachable model that loads rows from a database.</p>
  
  <p>User A: Renders the list loading all 5 rows with delete buttons.</p>
  
  <p>User B: On another machine loads the same list and deletes row 3.</p>
  
  <p>User A: Still sees all 5 rows and deletes row 4. The model reattaches and instead of row 4 being deleted row 5 is deleted.</p>
  
  <pre><code>Form&lt;Void&gt; form = new Form&lt;Void&gt;("form");
  form.setOutputMarkupId(true);
  add(form);
  
  ListView&lt;Data&gt; list = new ListView&lt;Data&gt;("list", detachableDataList)
  {
          private static final long serialVersionUID = 1L;
  
          protected void populateItem(final ListItem&lt;Data&gt; item)
          {
              AjaxSubmitLink delete = new AjaxSubmitLink("delete")
              {
                  protected void onSubmit(AjaxRequestTarget target, Form&lt;?&gt; form)
                  {
                      Data data = item.getModelObject();
                      DB.delete(data.getPk());
                      target.add(form);
                  }
              }
          }
  }
  form.add(list);
  </code></pre>
  
  <p>Attempted to try using setReuseItems(true)
  Attempted to use a RefreshingView
  Attempted to override getListItemModel</p>
  
  <p>None of these worked</p>
  
  <p><strong>EDIT For Attempted Clarity</strong></p>
  
  <pre><code>Item 1 [delete]
  Item 2 [delete]
  Item 3 [delete]
  Item 4 [delete]
  Item 5 [delete]
  </code></pre>
  
  <p>When I click delete on Item 4 it applies to Item 5 since Item 3 was deleted by another user.</p>