Как удалить элемент из списка ASP.NET и сохранить источник данных? - PullRequest
0 голосов
/ 27 апреля 2010

У меня есть коллекция объектов, которые я привязываю к Listview следующим образом:

   if (!IsPostBack)
        {
            List<Equipment> persons = new List<Equipment>
                             {new Equipment{ItemName = "Sworn", ItemCount = 7, ItemCost = 255},
                              new Equipment{ItemName = "Civ", ItemCount = 3, ItemCost = 80},
                              new Equipment{ItemName = "Civ", ItemCount = 5, ItemCost = 200}};

            lvMain.DataSource = persons;

            BindList();
        }

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

Итак, мой вопрос: как мне поддерживать состояние для этого источника данных? Я пробовал это (удалить пример)

  protected void lvMain_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        switch (e.CommandName)
        {
            case "Delete":
                {
                    ListViewDataItem lvdi = (ListViewDataItem)e.Item;
                    lvMain.Items.Remove(lvdi);                
                    break;
                }

Но это ничего не делает. Я не могу привязать его к источнику данных, потому что на этом этапе источник данных является нулевым. Я предполагаю, что просмотр списка сохраняет свое собственное состояние представления, которое содержит данные? ... Я предполагаю, что в худшем случае я всегда могу держать коллекцию объектов в сеансе объект .. ..

Я что-то делаю не так или думаю не так?

1 Ответ

0 голосов
/ 27 апреля 2010

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

Магазин в Viewstate

ViewState["Persons"] = persons;

Вернитесь из Viewstate

List<Equipment> persons = (List<Equipment>)ViewState["Persons"];

... Выполнить добавление / редактирование / удаление объекта, затем сохранить его в Viewstate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...