none
Gridviewの1件目を一緒のタイミングでDetailesviewに表示したい RRS feed

  • 質問

  • どうもはじめまして。よろしくお願いします。

    現在、10件のデータ全件をGridviewで表示して選択ボタンを押すとその詳細情報をDetailesviewに表示するプログラムを作成しました。

    そこでご質問があります。
    このプログラムを実行すると
    1.Gridviewを表示する。
    2.いずれかの選択ボタンを押すとその詳細情報をDetailesviewに表示する。

    となりますが最初だけ下記のようにしたいです。
    1.Gridviewが表示され、一緒に1件目の詳細情報をDetailesviewに表示する。
    2.いずれかの選択ボタンを押すとその詳細情報をDetailesviewに表示する。

    宜しくお願いします。
    2007年5月11日 6:41

すべての返信

  • GridViewでデータがバインドされたタイミングで、PostBack時でなければ一件目を選択した状態にする、

    というプログラムが書ければうまくいくかな?

    試してないからちゃんと動くかわからないけど。

     

    2007年5月11日 7:55
  • ご連絡ありがとうございます。

    「PostBack時でなければ一件目を選択した状態にする」、私も同感です。

    しかしながらこの「一件目を選択した状態にする」はプログラムでどのように実現すればよろしいでしょうか。

    Gridviewの何かのプロパティ値を変更するとかなのかなあとは思うのですがわかりません。

    本当にご多忙中申し訳ありませんが教えて下さい。宜しくお願い申し上げます。

    2007年5月14日 0:17
  • DetailsViewにどのように表示されているのかわからないのですが、基本的にはGridViewのSelectedIndexを0にセットし、DetailsViewに1行目のデータを表示するロジックを書けば良いと思います。
    2007年5月14日 7:41
    モデレータ
  • ご連絡ありがとうございます。何とかできました。
    DetailsViewには、Gridviewでは非表示の項目を表示しています。
    DetailsViewはFilterExpressionを使って条件抽出しております。
    RowDataBoundで1レコード目の時にSelectedIndex = 0としてDetailsViewのSqldatasourceのFilterExpression の条件を動的に変更してみました。

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // 1レコード目のみ
                if (e.Row.DataItemIndex == 0)
                {
                    GridView1.SelectedIndex = 0;
                    Detailsqldatasource.FilterExpression = "xxxx='" + DataBinder.Eval(e.Row.DataItem, "zzzz").ToString() + "'";
                }

            }
        }

    2007年5月15日 1:58
  • 上のコードでも動くとは思いますが、意味合いからすれば適切ではないように思います。Loadイベントでポストバックではない時のみ、下の2行のコードを実行した方が良いと思います。

                   GridView1.SelectedIndex = 0;
                    Detailsqldatasource.FilterExpression = "xxxx='" + DataBinder.Eval(e.Row.DataItem, "zzzz").ToString() + "'";
     

    2007年5月15日 4:09
    モデレータ
  • データがバインドされた後でなくても大丈夫でしたっけ?

     

    #試してないので、大丈夫なのかもしれない。

    2007年5月15日 5:37
  •  どっとねっとふぁん さんからの引用

    データがバインドされた後でなくても大丈夫でしたっけ?

    一瞬、私も頭を過ぎりましたが、プロパティの設定だからいいのかしれないと思いました。すみません。試してません。

    ただ、少なくとも上のコードですと、1行目以外が選択できない気がします。違っていたらごめんなさい。

    2007年5月15日 5:57
    モデレータ