Как удалить в asp: ListView, который использует asp: XmlDataSource? - PullRequest
0 голосов
/ 04 апреля 2011

Я создал asp:ListView и прикрепил его к asp:XmlDataSource. Я хотел бы поддержать команду удаления для моего списка, поэтому я добавил следующую кнопку:

<asp:Button runat="server" CommandName="Delete" 
            Text="Del" CausesValidation="false" />

Выдает «Указанный метод не поддерживается». Любые идеи о том, как реализовать это удаление?

1 Ответ

1 голос
/ 04 апреля 2011

XmlDataSource не поддерживает команду Delete напрямую, вы должны манипулировать вашим XML-документом вручную.Есть как минимум 2 способа справиться с этим на своей странице.

  • Измените CommandName на вашей кнопке на команду, которая по умолчанию не существует, и внесите изменения в XML в ListView ItemCommand обработчик событий.Аргумент события для обработчика события ItemCommand имеет тип ListViewCommandEventArgs, который имеет свойство CommandName, которое устанавливается равным значению, установленному для вашей кнопки.
  • Оставьте кнопку с помощью CommandName="Delete", ив событии ItemDeleting вы должны отменить событие (чтобы он не пытался вызвать Delete на вашем элементе управления XmlDataSource, который вы уже видели, не работает).Затем выполните редактирование XML здесь.

Что касается фактической реализации функции удаления, вам придется вручную редактировать XML в своем коде. Из документации класса XmlDataSource на MSDN :

Обновление данных XML

Элемент управления XmlDataSource обычно используется в сценариях данных только для чтениягде связанный с данными элемент управления отображает данные XML.Однако вы также можете использовать элемент управления XmlDataSource для редактирования данных XML.Чтобы редактировать данные XML, вызовите метод GetXmlDocument для получения объекта XmlDataDocument, который представляет собой представление данных XML в памяти.Вы можете использовать объектную модель, предоставляемую объектами XmlDataDocument и XmlNode, которые она содержит, или использовать фильтрующее выражение XPath для манипулирования данными в документе.После внесения изменений в представление XML-данных в памяти вы можете сохранить их на диск, вызвав метод Save.

Существуют некоторые ограничения возможностей редактирования элемента управления XmlDataSource:

  • Данные XML должны быть загружены из файла XML, указанного в свойстве DataFile, а не из встроенного XML, указанного в свойстве Data.
  • В преобразовании нельзя указывать XSLT-преобразование илиСвойства TransformFile.
  • Метод Save не обрабатывает одновременные операции сохранения различными запросами.Если несколько пользователей редактируют XML-файл через XmlDataSource, нет гарантии, что все пользователи работают с одними и теми же данными.Также возможна ошибка операции сохранения из-за тех же проблем параллелизма.
...