Сохранить обновленный объект в общем списке - PullRequest
0 голосов
/ 30 августа 2010

Я очень стараюсь обновить бизнес-объект внутри List <>.

Я использую список флажков

  1. При нажатии элемента списка флажков
  2. Я проверяю, существует ли он, если да, я отмечаю его как Грязный (означает, что пользователь снимает отметку с элемента)
  3. Если нет, я добавляю новый элемент в список (означает, что пользователь щелкает новый элемент) и сохранить его в состоянии просмотра

    Как обновить общий список с помощью грязного объекта? При обновлении формы я должен составлять отдельные списки грязных и новых объектов для отправки на слой БД или рекомендовать другой способ?

Вот мой код, извините за плохую логику. Я просто начинающий = (

protected void cblExclusions_SelectedIndexChanged(object sender, EventArgs e)
{
   if (cblExclusions.SelectedIndex != -1)
    {
        ftExclusions myExclusion=new ftExclusions();  // Business object
        ftExclusionsList myExclusionList=new ftExclusionsList();   // Business Obj. List
        int excId = Convert.ToInt32(cblExclusions.SelectedValue.ToString()); // value of checkbox list item which is clicked
        ftExclusionsList tempList = (ftExclusionsList)ViewState["ftExclusionList"];

        ftExclusions isExist =tempList.Find(delegate(ftExclusions tmpExclusion)
            {
                return (tmpExclusion.excluId == excId);
            });

        if (isExist != null)
        {
            isExist.isDirtyExclusion(); // Mark as dirty
            tempList.  // stuck here I don't grasp how to save this back to the list 
        }
        else
        {
            myExclusion = new ftExclusions();
            myExclusion.excluId = excId;
            myExclusion.fTrtID = Convert.ToInt32(lblTreatyNo.Text);
            myExclusion.ftExcluId = -1;     //new record
            myExclusion.isNewExclusion();   // Mark as new
            tempList.Add(myExclusion);
        }
        ViewState["ftExclusionList"] = tempList;                

    }
}

1 Ответ

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

Вам не нужно сохранять его обратно в список.Предполагая, что ftExclusions является классом, а не структурой, он всегда передается по ссылке.Это означает, что и tempList, и isExist содержат ссылку на один и тот же объект.И любые изменения на объекте будут видны из обоих мест.

...