none
GridViewに表示されるデータの表示順について RRS feed

  • 質問

  • Asp.Net2.0(C#)で開発をしております、
    GridViewコントロールに以下のような方法でデータをバインドしていますが、
    GridView設定上、"Order1","Order3"は、列が存在しますが、"Order2"が列として存在しない時、
    DataBind()メソッド実行後、表示されたデータの表示順(ソート順)に"Order2"が含まれていない現状です・・・
    これは、仕様でしょうか?
    ご存知のからご教授ください。

    this.gvHoge.DataSource = taHoge.GetData().Select("", "Order1, Order2, Order3");
    this.gvHoge.DataBind();

    以上

    2010年5月26日 0:34

回答

  • 返信ありがとうございます、
    再度確認しましたことろ
    以下のソートオーダーで指定している"Order2"という列が、taHogeには、存在しないという
    ことが分かりました・・・
    Selectメソッドの実行時にエラーは発生していませんでしたが、taHogeに"Order2"列を
    追加したところ、意図していたソート順で表示されました。

    this.gvHoge.DataSource = taHoge.GetData().Select("", "Order1, Order2, Order3");

    以上
    お騒がせしました。
    2010年5月26日 3:59

すべての返信

  • GridViewには勝手に並べ替えを行って表示する機能はなかったかと。
    とりだしたデータがその表示順になっている、ということはありませんか?


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2010年5月26日 1:31
  • 返信ありがとうございます、
    再度確認しましたことろ
    以下のソートオーダーで指定している"Order2"という列が、taHogeには、存在しないという
    ことが分かりました・・・
    Selectメソッドの実行時にエラーは発生していませんでしたが、taHogeに"Order2"列を
    追加したところ、意図していたソート順で表示されました。

    this.gvHoge.DataSource = taHoge.GetData().Select("", "Order1, Order2, Order3");

    以上
    お騒がせしました。
    2010年5月26日 3:59
  • 解決(?)したそうですが・・・

    > Selectメソッドの実行時にエラーは発生していませんでしたが、taHogeに"Order2"列を
    > 追加したところ、意図していたソート順で表示されました。
    >
    > this.gvHoge.DataSource = taHoge.GetData().Select("", "Order1, Order2, Order3");

    たぶん、Select は DataTable.Select(String, String) メソッドだと思いますが、そう
    だとすると使い方が間違っていませんか? 第一引数はフィルター基準、第二引数はソ
    ートの基準になる特定のコラム名になるはずです。

    taHoge.GetData().Select("", "Order1, Order2, Order3") の結果として何を得ること期
    待しているのでしょうか?

    たぶん、gvHoge は GridView だと思いますが、その DataSource プロパティに DataRow[]
    を設定して期待通りの表示がされるのですか?

    2010年5月26日 13:32