2011-04-04 18 views
0

我創建了一個asp:ListView並將其附加到asp:XmlDataSource。我想支持我的列表的刪除命令,所以我添加了以下按鈕:如何在asp:ListView中刪除使用asp:XmlDataSource?

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

它引發'不支持指定的方法'。有關如何實施此刪除的任何想法?

回答

1

XmlDataSource不直接支持Delete命令,您必須手動操作XML文檔。至少有兩種方法可以在頁面中處理此問題。

  • 變化對您的按鈕不存在默認情況下,做在ListView的ItemCommand事件處理程序的XML編輯的命令CommandNameItemCommand事件處理函數的事件參數類型爲ListViewCommandEventArgs,其中CommandName屬性設置爲您在按鈕上設置的值。
  • 將該按鈕與CommandName="Delete"ItemDeleting事件相關聯,您必須取消該事件(以防止它在您的XmlDataSource控件上嘗試呼叫Delete,您已經看到該控件不起作用)。然後在這裏做你的XML編輯。

就實際實現刪除功能而言,您必須在代碼隱藏中手動編輯XML。 From the XmlDataSource Class documentation on MSDN

更新XML數據

XmlDataSource控件在只讀數據方案,其中數據綁定控件顯示XML數據是常用的。但是,您也可以使用XmlDataSource控件來編輯XML數據。要編輯XML數據,請調用GetXmlDocument方法來檢索作爲XML數據的內存中表示形式的XmlDataDocument對象。您可以使用它包含的XmlDataDocument和XmlNode對象公開的對象模型,也可以使用XPath過濾表達式來處理文檔中的數據。當您更改XML數據的內存中表示時,可以通過調用Save方法將其保存到磁盤。

有一些限制XmlDataSource控件的編輯功能:

  • XML數據必須從由DataFile屬性指示的XML文件被加載,而不是從在數據屬性中指定的內聯XML 。
  • 無法在Transform或TransformFile屬性中指定XSLT轉換。
  • Save方法不處理不同請求的併發保存操作。如果多個用戶通過XmlDataSource編輯XML文件,則不能保證所有用戶都使用相同的數據進行操作。由於這些相同的併發問題,Save操作也可能會失敗。
+0

我想我會切換到SQL Server或SQL Express ;-) – 2011-04-12 09:18:58