現在VisualWebDeveloper2005にて、セミナーの申し込みページを作成しています。
動作は、コース一覧(GridView)からチェックボックスで受けたいコースを選択し、GridViewの下にある[申し込む]ボタンを押すとGridViewからチェックがついている行のデータ(コースID)を取得し、次ページに送信→次ページでそのIDをもとにGridViewで詳細情報を表示する確認ページを作成したいと思っています。
GridViewの中にチェックボックスを作成し、チェックボックスがオンになっているもののみ、という部分まではプログラムが完成しているのですが、取得したデータを送信→次ページで受け取り表示の部分がわからずに困っています。
チェックした行のデータをSessionに入れようと考えたのですが
'チェックボックスがオンになっている時、その行のIDを取得してテキストボックスに表示
Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs)
For Each row As GridViewRow In GridView1.Rows
Dim cb As CheckBox = CType(row.FindControl("cbSelect"), CheckBox)
If cb.Checked Then
Session("test") = row.Cells(1).Text
Response.Redirect("kakunin.aspx")
End If
Next
End Sub
このプログラムだと複数の項目をチェックしても1つしかデータが送信されないのでどうすればいいかわからない状態です。
3日ほどどうすればいいかを検索してみたのですが、良い答えが見つからなかったので質問させていただきます。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
検索してもでてこないでしょう。
仕組みを考えて対応してください。
GridView1.Rows は、GridView1 のすべての行を返します。つまり、For ~ Next ループは 行数分繰り返されるわけですから、cb.Checked を判断したら、配列やリストなどに row.Cells(1).Text の値を貯めていって、ループが終わってから、セッション変数に格納します。
この回答への補足
本日試してみたところ、データの受け渡しが正常にできるのを確認しました。
その受け取ったデータをテキストボックス等に表示させるのは成功したのですが、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文の内容が間違っていないことは確認済みなのですが、何がいけないのでしょうか?
回答していただきありがとうございます。
今回の質問で使っているソースは他の解説ページから少しずつコピーして使っていたので、正直意味がわかっていない部分があったのですが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
このようなコードにしたところ、エラーはでなくなりました。(次のページで正常に受け取れるかはまだ確認していません)
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
グリッドビューでのチェックボックス押下時イベント
Visual Basic(VBA)
-
GridViewからテンプレートフィールドのEvalにおける、値の取得
Microsoft ASP
-
ASP.NETでのメッセージ画面を出すには
Microsoft ASP
-
-
4
Webページ上のボタン等の位置を移動したい。
Microsoft ASP
-
5
【ASP.NET】ページ遷移してもGridView内の値を保持する方法
その他(プログラミング・Web制作)
-
6
GridViewにバインドせずにデータを表示する方法
Microsoft ASP
-
7
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
8
ASP.Net 条件により自身を閉じるには
Microsoft ASP
-
9
GridViewの行選択イベントを発生させるには?
JavaScript
-
10
asp.netにてgridviewの列を動的にボタンやチェックボックスを追加して実装したいのですが具
Microsoft ASP
-
11
登録後、呼び出し元ページに戻るには
Microsoft ASP
-
12
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
13
GridviewとDataGridviewの違い
Microsoft ASP
-
14
DataGridView からの値取得に関して
Visual Basic(VBA)
-
15
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
16
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
excel access連携 このテーブル...
-
【C#】DataGridViewの最大列数...
-
json_encodeが表示しない
-
vusial studio 2008 PrintScree...
-
MSFlexGridのデータを初期化し...
-
表を表示するコントロールについて
-
VB 音の波形を取得する関数は?
-
GridViewからチェックボックス...
-
EXCEL VBAでのCSV出力について
-
システムを作る時に、画面上に...
-
「外部データの取り込み」とい...
-
Excelピポットテーブルでの表示...
-
WordでExcelデータを差込...
-
VBA内でのGetPixelを使用した時...
-
「取得先」という表現について
-
shシェルスクリプト 空白行の...
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
【C#】DataGridViewの最大列数...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
GridViewからチェックボックス...
-
VBA内でのGetPixelを使用した時...
-
ActiveReportのサブレポート機...
-
MSFlexGridのデータを初期化し...
-
Windowsのマクロプログラムで、...
-
C#でのForm間のデータ受け渡し...
-
「外部データの取り込み」とい...
-
★お手上げ状態です。助けてくだ...
-
VB.NET 2017の勉強中です。 今...
-
EXCEL VBAでのCSV出力について
-
C言語で地図を描きたい
-
VB6でDBからクリップボード経由...
-
エクセルVBAで楽天証券に注...
-
INIファイルに一括書き込みを行...
-
OleDbDataReaderで単精度浮動小...
おすすめ情報