Использование 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);
}