none
ASP.NET3.5 GridViewにXmlDocumentオブジェクトをバインドしたい。 RRS feed

  • 質問

  • VS2008のASP.NETでGridViewにWebリクエスト等で取得した動的?XmlDocumentをバインドする方法が判りません。

    ヘルプなどには、ファイルから読み込んでバインドする方法は在るのですが、XmlDocumentオブジェクトをバインドする方法が見当たりません。

    どなたか御教授願います。

     

    2010年8月26日 8:56

回答

すべての返信

  • XmlDataSource を使ってバインドすればいいと思います。

    http://msdn.microsoft.com/ja-jp/library/aa479341.aspx

     

    XmlDataSource の Data プロパティには、文字列のXMLをセットできます。

    http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.xmldatasource.data.aspx

    取得したXmlDocumentを文字列に変換して、XmlDataSourceのDataプロパティに設定すればいいかと。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク マリカ 2010年8月27日 1:42
    2010年8月26日 9:48
  • 直接XMLDocumentをバインドすることはできないんじゃないかな?
    なにかクラスを作って、そのリストを作成して、XMLベースで受け取った内容をリストに追加して、で、そのリストをGridViewにバインドする、といった形になるかと思います。
    XMLをリストの形式に変換するのは、LINQ for XMLを利用すると楽かもしれません。
    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2010年8月26日 9:49
  • LINQ to XML を使う場合は、次の記事が参考になりそうです。

    http://builder.japan.zdnet.com/news/story/0,3800079086,20366103-2,00.htm

    XDocument を生成する方法を、ファイルからロードするのではなく 、XML 文字列のパースに変更する必要がありますけど。


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年8月26日 9:57
  • > Webリクエスト等で取得した動的?XmlDocumentをバインドする方
    > 法が判りません。

    「Webリクエスト等」の意味が理解できていませんが、取得するのは
    ただの xml の文字列ではなくて、XmlDocument に間違いないでしょ
    うか?

    2010年8月26日 12:59
  • 皆様、早々の御返事ありがとうございます。

    SurferOnWww様の御指摘の通り、XmlDocumentオブジェクトと言いつつ、単なるXML形式の文字列です。

    XmlDataSourceは、私も考えたのですが、サンプルページを見てもファイルからの方法だったので諦めてしまってました。

    なかむら様の御指南のXmlDataSourceのDataに、XML文字列を設定して出来ました。

    ただ、サンプルの様な1タグ1レコードの形式では無いためxslファイルの設定が必要でした。

    XmlDocumentでノードの解釈が出来るのだから、xslなしで簡単に出来れば便利なのにね!

    皆様、お世話になりました。

    2010年8月27日 1:42