0

我创建了一个asp:ListView并将其附加到一个asp:XmlDataSource. 我想为我的列表支持删除命令,所以我添加了以下按钮:

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

它抛出“不支持指定的方法”。关于如何实施此删除的任何想法?

4

1 回答 1

1

AnXmlDataSourceDelete直接支持该命令,您必须手动操作 XML 文档。至少有两种方法可以在您的页面中处理此问题。

  • 将按钮上的更改为CommandName默认情况下不存在的命令,并在 ListView 的ItemCommand事件处理程序中进行 XML 编辑。事件处理程序的事件参数ItemCommand的类型ListViewCommandEventArgs具有一个CommandName属性,该属性设置为您在按钮上设置的值。
  • 将按钮保留为CommandName="Delete"ItemDeleting如果您必须取消该事件(以防止它尝试调用Delete您的XmlDataSource控件,您已经看到该控件不起作用)。然后在此处进行 XML 编辑。

就实际实现删除功能而言,您必须在代码隐藏中手动编辑 XML。从 MSDN 上的 XmlDataSource 类文档

更新 XML 数据

XmlDataSource 控件通常用于数据绑定控件显示 XML 数据的只读数据方案。但是,您也可以使用 XmlDataSource 控件来编辑 XML 数据。要编辑 XML 数据,请调用 GetXmlDocument 方法来检索作为 XML 数据的内存表示形式的 XmlDataDocument 对象。您可以使用由其包含的 XmlDataDocument 和 XmlNode 对象公开的对象模型,或使用 XPath 过滤表达式来操作文档中的数据。对 XML 数据的内存表示进行更改后,可以通过调用 Save 方法将其保存到磁盘。

XmlDataSource 控件的编辑功能有一些限制:

  • XML 数据必须从 DataFile 属性指示的 XML 文件加载,而不是从 Data 属性中指定的内联 XML 加载。
  • 不能在 Transform 或 TransformFile 属性中指定 XSLT 转换。
  • Save 方法不处理不同请求的并发保存操作。如果多个用户正在通过 XmlDataSource 编辑 XML 文件,则无法保证所有用户都在使用相同的数据进行操作。由于这些相同的并发问题,保存操作也可能失败。
于 2011-04-04T15:12:19.633 回答