none
GridViewの昇順・降順 RRS feed

  • 質問

  • お世話になってます。

    環境:C#、ASP.NET 2.0、VisualStudio2005


    GridViewの昇順・降順の並び替えについて詰まっています。

     

    現在、GridViewにSQLServerと連携してテーブルをバインドしてあります。
    GridViewは、[ページング]にチェックを入れてあります。
    ページ数は全部で5ページです。

     

    やりたいこととしましては、
    Default.aspxに昇順ボタン、降順ボタンを用意して、
    昇順ボタンをクリックしたときに、
    ページ1内で昇順にしたいと考えてます。


    具体的にどのようにすればよいかご教授いただけると幸いです。
    宜しくお願いします。

    2008年1月28日 8:21

回答

  •  はやと さんからの引用

    GridViewのバインドをObjectDataSourceを使うということでしょうか?


    SqlDataSourceの代わりにObjectDataSourceを使用してGridViewへバインドします。カスタムページングなどで検索すると例が見つかると思います。ObjectDataSourceを利用したカスタムページングは、表示するページ分のデータだけを取得して表示します。この時にデータを取得する順序を変えようという発想です。

     

    SqlDataSourceで行うページングは、表示するページ以外のデータも全て取得し、その中から表示するページ分だけのデータを窓から見ているイメージです。SqlDataSourceの場合はこの辺りが自動で行われ、ビジネスロジックが入る余地がありませんので、その必要がある場合にObjectDataSourceが使われます。もちろん、そのページに表示する分だけのデータしか取得しませんから、システムへの負担はSqlDataSourceに比べて軽くなります。

     はやと さんからの引用

    また、ボタンクリックイベントでObjectDataSourceを使うということでしょうか?

    GridViewObjectDataSourceを利用して、必要なデータのみを取得します。

     

    まずはObjectDataSourceを利用したカスタムページングを実装してみて下さい。

     

    2008年1月30日 7:48
    モデレータ

すべての返信

  • 基本的にはボタンクリックイベントで、

    SqlDataSource1.SelectCommandにSQL文をセットして、GridView1.DataBind()です。

     

    #(追記 17:50)

    あっ、ページ内でのみですか。であればObjectDataSourceで当該ページのデータを返すときに、ソートをかけたデータテーブルを返すようにすればいいんじゃないかと思います。

    2008年1月28日 8:39
    モデレータ
  • trapemiya様、返信有難うございます。

     

    早速、ObjectDataSourceは使ったことがなく、SqlDataSourceを使っていたのですが、

    GridViewのバインドをObjectDataSourceを使うということでしょうか?

     

    また、ボタンクリックイベントでObjectDataSourceを使うということでしょうか?


    基本的な質問で申し訳ございません。

    2008年1月29日 8:24
  •  はやと さんからの引用

    GridViewのバインドをObjectDataSourceを使うということでしょうか?


    SqlDataSourceの代わりにObjectDataSourceを使用してGridViewへバインドします。カスタムページングなどで検索すると例が見つかると思います。ObjectDataSourceを利用したカスタムページングは、表示するページ分のデータだけを取得して表示します。この時にデータを取得する順序を変えようという発想です。

     

    SqlDataSourceで行うページングは、表示するページ以外のデータも全て取得し、その中から表示するページ分だけのデータを窓から見ているイメージです。SqlDataSourceの場合はこの辺りが自動で行われ、ビジネスロジックが入る余地がありませんので、その必要がある場合にObjectDataSourceが使われます。もちろん、そのページに表示する分だけのデータしか取得しませんから、システムへの負担はSqlDataSourceに比べて軽くなります。

     はやと さんからの引用

    また、ボタンクリックイベントでObjectDataSourceを使うということでしょうか?

    GridViewObjectDataSourceを利用して、必要なデータのみを取得します。

     

    まずはObjectDataSourceを利用したカスタムページングを実装してみて下さい。

     

    2008年1月30日 7:48
    モデレータ
  • 早速カスタムページングについて調べてそこから作っていこうと思います。

    ありがとうございました。
    2008年1月31日 23:11