我创建了一个asp:ListView
并将其附加到一个asp:XmlDataSource
. 我想为我的列表支持删除命令,所以我添加了以下按钮:
<asp:Button runat="server" CommandName="Delete"
Text="Del" CausesValidation="false" />
它抛出“不支持指定的方法”。关于如何实施此删除的任何想法?
我创建了一个asp:ListView
并将其附加到一个asp:XmlDataSource
. 我想为我的列表支持删除命令,所以我添加了以下按钮:
<asp:Button runat="server" CommandName="Delete"
Text="Del" CausesValidation="false" />
它抛出“不支持指定的方法”。关于如何实施此删除的任何想法?
AnXmlDataSource
不Delete
直接支持该命令,您必须手动操作 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 文件,则无法保证所有用户都在使用相同的数据进行操作。由于这些相同的并发问题,保存操作也可能失败。