Использование XML и LINQ в элементах управления TreeView и ListView - Удаление записей номеров телефонов сотрудников

ОГЛАВЛЕНИЕ

Удаление записей номеров телефонов сотрудников

Удаление номера телефона сотрудника работает по тому же принципу. Нам необходимо запомнить XPathAddress для сотрудников и передавать его обработчику события, ответственному за удаления записей. Как и в случае с редактированием, нам необходимо добавить кнопку Delete LinkButton (Button или ImageButton) к ItemTemplate элемента ListView. Установите его свойство CommandName в "XDelete" и свойство CommandArgument в значение XPathAddress удаляемого элемента.

<asp:LinkButton	ID="lnkDelete" runat="server"
      CommandName="XDelete"
      CommandArgument='<%# Eval("XPathAddress") %>'
      Text="Delete" /> 

В обработчике события ItemCommand элемента управления ListView нам необходимо обработать команду "XDelete". Как и в случае с командой "XUpdate", мы вызовем вспомогательный метод (deleteItem), передавая ему выражение XPath и затем  возвращая ListView в исходное состояние.

case "XDelete":
   deleteItem((string)e.CommandArgument);

   lvwEmployees.EditIndex = -1;
   lvwEmployees.DataBind();

   break; 

Метод deleteItem загружает объект XElement, основанный на предоставленном выражении XPath, удаляет его и затем сохраняет содержимое XML-файла.

protected void deleteItem(string xPath)
{
   string fileName = MapPath("PhoneBook.xml");

   XElement rootElement = XElement.Load(fileName);

   XElement itemElement = rootElement.XPathSelectElement(xPath);

   itemElement.Remove();
   rootElement.Save(fileName);