none
GridViewのイベントハンドラを「手書き」したいのですが RRS feed

  • 質問

  • ASP.NET 1.xでは編集可能なDataGridを作る際にいくつかのイベントハンドラを自分で書く必要がありましたが、ASP.NET 2.0のGridViewではこの辺がコーディングなしで済ませるようになっているようです。しかし諸般の事情でイベントハンドラをASP.NET 1.x風に「手書き」したいのですが、適当なサンプルがどこかにないでしょうか。

    たとえばPage_Loadで、

     

    Code Snippet

    DataSet ds = new DataSet();

    // dsに適当な値を入れる

    this.GridView1.DataSource = ds;

     

     

    とやっておいて、RowEditingやRow_Deletingなどのイベントハンドラを書いていきたいのですが....

     

     

    2007年8月4日 17:48

回答

  • あ、すでに存在するDataSetを利用する場合のコードですが、

    http://www.asp.net/learn/data-access/

    ここの2番目のCreating Bisiness Logic Layerの記事が参考になるかもしれません。

     

    この記事の中ではデータアクセス部分はVSが生成するテーブルアダプター等を利用していますが、ここで作成しているビジネスロジックレイヤークラスのインタフェースを参考にして、実際のデータアクセス部分を存在しているDataSetを利用するようにすればいいんじゃないかと思います。

     

    2007年8月9日 7:55

すべての返信

  • 一度GridView1にイベントを自分で追加してみて、どのようなハンドラが自動で追加されるか確認してみたら

    いいのではないでしょうか?

    それと同じように書けばいいと思いますよ。

     

    #諸般の事情、というのがよくわかりませんが、もし開発ツールが手元にない、とかいうことなら無償で使える

     Visiau Web Developerの利用をおすすめします。

     

    2007年8月6日 1:47
  • ご回答ありがとうございます。しかしVisutal Studioが自動的に追加したコードは.NET 2.0では直接見えないようなんですが、これを見るうまい方法はあるのでしょうか。

    「諸般の事情」というのは具体的には大体次のようなことです:現在開発中のWindowsアプリケーション(ちなみに.NET 1.1です)はサーバー部分とクライアント部分からなっており、サーバーの方ではクライアントから要求された情報をデータベースから引き出してDataSetを返すわけです。今から.NET 2.0でWebアプリケーションを作ろうとしているのですが、Windowsアプリケーションのサーバー部分を再利用して、クライアント部分のみ新規に作る予定です。この場合、サーバー側からDataSetをポンと返してくるわけですから、ASP.NETのSqlDataSourceやObjectDataSourceなどを使ったデータアクセス法にはうまくなじまないように思うのです。Sql/ObjectDataSource経由でデータを取ってくる場合にはDataSource内部でDataSetが生成され、GridViewなどにバインドされ、イベントハンドラも自動で追加されますが、自前のコードでデータアクセスする場合にはバインドとイベントハンドリングも自前のコードで行うことになります。この部分のいいサンプルがどこかににあると有難いなあと思っているのです。(単純な表示/更新の場合は問題ありませんが、編集可能なGridViewを置きたい場合にはよくわからない部分があるのです。)

    2007年8月9日 7:13
  • VSで自動的に追加されたコードで「見えない」というのは特にないはずです。
    すくなくともASP.NETで必要なコードは基本的には書き込まれています。

     

    DataSet自体のコードは一見すると見えないように思えますが、これはクラスビューを表示し、DataSetを右クリックして「定義へ移動」を選択することでコードを見ることができます。

    2007年8月9日 7:38
  • あ、すでに存在するDataSetを利用する場合のコードですが、

    http://www.asp.net/learn/data-access/

    ここの2番目のCreating Bisiness Logic Layerの記事が参考になるかもしれません。

     

    この記事の中ではデータアクセス部分はVSが生成するテーブルアダプター等を利用していますが、ここで作成しているビジネスロジックレイヤークラスのインタフェースを参考にして、実際のデータアクセス部分を存在しているDataSetを利用するようにすればいいんじゃないかと思います。

     

    2007年8月9日 7:55
  • 大変参考になりました。どうもありがとうございました。

    2007年8月13日 10:47