• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GridViewからチェックボックスでデータを選択し、次のページへ送信する動作について)

GridViewからチェックボックスでデータを選択・送信する方法

このQ&Aのポイント
  • GridViewを使用してチェックボックスでデータを選択し、次のページに送信する方法について、解説します。
  • VisualWebDeveloper2005を使用して、セミナーの申し込みページを作成しています。コース一覧(GridView)からチェックボックスで選択したコースのデータを取得し、次のページで表示するためのプログラムを作成したいと考えています。
  • 現在、チェックボックスがオンになっている行のデータ(コースID)を取得して、次のページに送信する方法について調査していますが、正しい方法が見つかっていません。複数の項目を選択しても、1つのデータしか送信されない状況です。解決策についてアドバイスをいただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
noname#259269
noname#259269
回答No.1

検索してもでてこないでしょう。 仕組みを考えて対応してください。 GridView1.Rows は、GridView1 のすべての行を返します。つまり、For ~ Next ループは 行数分繰り返されるわけですから、cb.Checked を判断したら、配列やリストなどに row.Cells(1).Text の値を貯めていって、ループが終わってから、セッション変数に格納します。

teltel007
質問者

お礼

回答していただきありがとうございます。 今回の質問で使っているソースは他の解説ページから少しずつコピーして使っていたので、正直意味がわかっていない部分があったのですがedp3142様のおかげでようやく理解することができました。 Dim sessionid() As String 'チェックボックスがオンになっている時、その行のIDを取得してテキストボックスに表示 Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim i As New Integer i = 0 For Each row As GridViewRow In GridView1.Rows Dim cb As CheckBox = CType(row.FindControl("cbSelect"), CheckBox) If cb.Checked Then ReDim Preserve sessionid(i) sessionid(i) = row.Cells(1).Text i = i + 1 End If Next Session("sessID") = sessionid Session("kaisuu") = i Response.Redirect("kakunin.aspx") End Sub このようなコードにしたところ、エラーはでなくなりました。(次のページで正常に受け取れるかはまだ確認していません) ありがとうございました!

teltel007
質問者

補足

本日試してみたところ、データの受け渡しが正常にできるのを確認しました。 その受け取ったデータをテキストボックス等に表示させるのは成功したのですが、SqlDataSourceのWHERE句の条件にしようとすると、うまくいきません。 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim kaisuu As New Integer Dim sqlcommand As String = "" Dim i As New Integer Dim a As String = "" kaisuu = Session("kaisuu") - 1 a = "([courceID] =" & Session("sessID")(i) For i = 0 To kaisuu - 1 a = a & " or " & Session("sessID")(i) Next a = a & " or " & Session("SessID")(i) & ")" sqlcommand = a TextBox1.Text = Session("sqlcommand") TextBox2.Text = kaisuu End Sub このように、WHERE句で、取得したデータの件数分 ○○ or ○○ と条件をつけるようにして、この「sqlcommand」をWHERE条件の部分に入れているのですが、FormViewで確認しても何も出てこないのです。 >>TextBox1.Text = Session("sqlcommand") この部分でWHERE文の内容が間違っていないことは確認済みなのですが、何がいけないのでしょうか?

関連するQ&A