0

を作成し、asp:ListViewに添付しましたasp:XmlDataSource。リストの削除コマンドをサポートしたいので、次のボタンを追加しました。

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

「指定されたメソッドはサポートされていません」というメッセージがスローされます。この削除を実装する方法についてのアイデアはありますか?

4

1 に答える 1

1

はコマンドを直接XmlDataSourceサポートしていないため、 XML ドキュメントを手動で操作する必要があります。Deleteページでこれを処理するには、少なくとも 2 つの方法があります。

  • 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 データは、Data プロパティで指定されたインライン XML からではなく、DataFile プロパティで示される XML ファイルからロードする必要があります。
  • Transform または TransformFile プロパティで XSLT 変換を指定することはできません。
  • Save メソッドは、異なる要求による同時保存操作を処理しません。複数のユーザーが XmlDataSource を介して XML ファイルを編集している場合、すべてのユーザーが同じデータを操作しているという保証はありません。これらの同時実行の問題が原因で、保存操作が失敗する可能性もあります。
于 2011-04-04T15:12:19.633 に答える