none
GridViewでソートすると「GridView 'GridView1' はハンドルされていないイベント Sorting を送出しました。」 RRS feed

  • 質問

  • GridViewのAllowSortingをTrueにし

    ヘッダーのリンクボタンをクリックすると

    GridView 'GridView1' はハンドルされていないイベント Sorting を送出しました。

    と出てしまいます。

    これは何かほかに設定する必要があるのでしょうか?

    リンクボタンにカーソルを合わせるとブラウザの下のステータバー?でしたでしょうか

    とりあえず下のところに

    javascript:__doPostBack('GridView1','Sort$hoge)

    と出ているのでここら辺の設定を別にする必要でもあるのかと思い

    検索してみましたがよき参考文献が見つかりませんでした。

    解決方法をご存知の方ご回答いただけましたら幸いです。

    2010年6月21日 5:06

回答

すべての返信

  • 標準で用意されているソート機能を使用するには、SqlDataSourceなどを使用しなければなりません。確認してみて下さい。

    (参考)
    データ ソース コントロールによるデータの並べ替え
    http://msdn.microsoft.com/ja-jp/library/sa88ktts.aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2010年6月21日 6:07
    モデレータ
  • trapemiyaさんご回答ありがとうございます。

    確認してみます。

    2010年6月23日 13:28
  • お世話になっております。ずいぶんと時間がたってしまいました。申し訳ございません。


                DataSet ds = new DataSet();
                MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM hoge", new MySqlConnection("userid=root;password=hoge;database=hoge;Host=localhost"));            
                da.Fill(ds);

                GridView1.DataSource = ds;           
                GridView1.DataBind();

    このように取得設定しています。

    これはSqlDataSourceにあたるのでしょうか?それともマイクロソフトのSQLServerでないとだめだと

    いうことなのでしょうか?

     

    2010年7月14日 1:34
  • いいえ、ご提示されたコードではSqlDataSourceが使われていません。以下にサンプルがありますので参考にしてみて下さい。

    データ バインド Web パーツ コントロールの例
    http://msdn.microsoft.com/ja-jp/library/ms227548(VS.80).aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2010年7月14日 1:54
    モデレータ
  • > 検索してみましたがよき参考文献が見つかりませんでした。

    MSDN ライブラリは見ましたか? 質問する前にまずこれを見ることをお勧めし
    ます。最初の質問にあった GridView と AllowSorting をキーワードに検索を
    かければ、以下のページが見つかるはずで、これに必要な情報はすべて入って
    います。

    GridView.AllowSorting プロパティ
    http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridview.allowsorting.aspx

    基本的なことですから、チュートリアルなどは探せば必ず見つかるものです。
    探す努力をしましょう。

    2010年7月14日 12:54
  • trapemiyaさん毎回ご回答ありがとうございます。

    助かってます。

    どうもMySQLではソート機能は使えなさそうなのでヘッダーに

    ボタンかもしくはそれに代わるようなものを配置して

    それをクリックしたタイミングでサーバへSQL文を送ってソートされたデータを取得するか

    すでに取得しているDataSetに入っている内容をソートすればいいのかと考えております。

    (これからできるかやってみます。だめかもしれませんので・・・)

    もっと、よき方法がございましたらアドバイスいただけましたら幸いです。

    回答としてマークを付けたいですが返答がほしいので少し置いときます。

    マイクロソフトの方はそっと見守っていただけましたら幸いです。

    • 編集済み 極小テック 2010年7月17日 0:49 一行へんな文章消去
    2010年7月16日 11:37
  • ObjectDataSourceを使ってカスタムページングを行なえば良いと思いますよ。

    (参考)
    ASP.NET 2.0とSQL Server 2005によるカスタムのページング処理
    http://japan.internet.com/developer/20060620/25.html

    ASP.NET 2.0 GridView サンプル - GridView データのページングおよび並べ替え
    http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnvs05/htm/ASP2.0/gridview/GridViewEx05.asp


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2010年7月16日 21:58
    モデレータ
  • trapemiyaさんご回答ありがとうございます。

    ObjectDataSource勉強してみます。

    また、わからないことがでてきましたら別スレで質問させて頂きますので

    お付き合いいただけましたら幸いです。

    2010年7月17日 1:26