none
gridviewのページ変更時のデータソース RRS feed

  • 質問

  • おせわになります。
    vs2008,sqlserver2005環境です。
    webフォームを作成しております。gridviewのデータとしてdropdownlistから指定してデータを抽出しました。
     Dim bango As Integer
            bango = ddlConsult.SelectedValue
            SqlDataSource2.SelectCommand = "SELECT condition.condition, staff.staff_name, article_management.order_date, article_management.receipt_date, article_management.selling_date, article_management.return_date, article_management.customer_name, article_management.item_name, article_management.ID FROM article_management INNER JOIN condition ON article_management.condition_id = condition.ID INNER JOIN staff ON article_management.consult_id = staff.ID WHERE article_management.consult_id = " & bango

    このコードでgridviewには選択されたデータが表示されます。
    gridviewはページングに設定しており、1ページ目が表示されています。これを2ページ目にするとデータは抽出選択されていない元のデータが表示されてしまいます。
    抽出したデータをそのままページングに使用する方法が分かりません。
    よろしくお願いいたします。

    のぐちみずき
    2009年9月24日 8:17

回答

  • SqlDataSource2.SelectCommandに値を設定している上記のコードはどのタイミングで実行してますか?
    たぶん、ページ遷移したあとはこの値の設定が解除される形になっているのだと思います。
    SqlDataSourceに対してコントロールパラメータを使うようにして、DropDownListをそのコントロールパラメータの元データとするような形で動かすことでページングはうまくいくようにも思います。
    まぁ、初期状態(DropDownListで選択していない状態)でデータとして何を表示するか、とか別にかんがえないといけないことがでてくるかもしれませんが。
    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2009年9月24日 8:54

すべての返信

  • SqlDataSource2.SelectCommandに値を設定している上記のコードはどのタイミングで実行してますか?
    たぶん、ページ遷移したあとはこの値の設定が解除される形になっているのだと思います。
    SqlDataSourceに対してコントロールパラメータを使うようにして、DropDownListをそのコントロールパラメータの元データとするような形で動かすことでページングはうまくいくようにも思います。
    まぁ、初期状態(DropDownListで選択していない状態)でデータとして何を表示するか、とか別にかんがえないといけないことがでてくるかもしれませんが。
    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2009年9月24日 8:54
  • 返事をありがとうございます。コードはDropDownListの値を変更したときに動くようにしています。
    Private Sub ddlConsult_SelectedIndexChanged の中です。
    コントロールパラメータですね。調べてみます。
    のぐちみずき
    2009年9月24日 9:18
  • ありがとうございます。ページングも問題なく表示できました。
    パラメータの書き方が分からなかったのですが、今回パラメータの使用方法も分かりました。
    のぐちみずき
    2009年9月24日 9:40