
現在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も見ています
-
「それ、メッセージ花火でわざわざ伝えること?」
「それ、メッセージ花火でわざわざ伝えること?」というメッセージを教えて下さい
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
あなたが好きな本屋さんを教えてください
どのくらいの規模間で、どのような本が並んでいるか、どのような雰囲気なのかなどなど...
-
GridviewとDataGridviewの違い
Microsoft ASP
-
グリッドビューでのチェックボックス押下時イベント
Visual Basic(VBA)
-
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
-
4
ASP.NetのGridViewで任意の行クリックで選択を行う方法
Microsoft ASP
-
5
【ASP.NET】ページ遷移してもGridView内の値を保持する方法
その他(プログラミング・Web制作)
-
6
asp.netにてgridviewの列を動的にボタンやチェックボックスを追加して実装したいのですが具
Microsoft ASP
-
7
ASPで画面間のパラメタ受け渡し
Microsoft ASP
-
8
ASP.NET(VB)VBソースからJavascriptの関数を呼ぶには
Microsoft ASP
-
9
【C#】Page_Loadさせない方法について
その他(プログラミング・Web制作)
-
10
ASP.netで、CheckBoxListのSelectedIndexChangedが発生しません!
Microsoft ASP
-
11
テキストボックスのクリックでカレンダー表示
Microsoft ASP
-
12
TextChangeイベントが発生しない
JavaScript
-
13
GridViewの項目編集(初歩)
Microsoft ASP
-
14
ASP.Net 別ウィンドウを開く・ジレンマ編
Microsoft ASP
-
15
GridViewの行選択イベントを発生させるには?
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
excel access連携 このテーブル...
-
MSFlexGridのデータを初期化し...
-
VBA内でのGetPixelを使用した時...
-
「外部データの取り込み」とい...
-
回線速度が64kbpsだったら、64k...
-
DTOとEntityの差は何ですか。
-
★お手上げ状態です。助けてくだ...
-
PHPを使って、別サイトの一部を...
-
ps3で久しぶりにCDの音楽情報取...
-
shシェルスクリプト 空白行の...
-
「取得先」という表現について
-
phpでcookieがうまく保存されない
-
Yahoo! JAPAN IDを新規取得でき...
-
Dosブロンプトでtabを出力したい
-
VBA コレクションに2次元配列...
-
DMMの動画を全件取得したのです...
-
VB.NETで他のアプリが完全に起...
-
switch()文で値の大小比較
-
各クライアントマシンのログイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
GridViewからチェックボックス...
-
VB.NET 2017の勉強中です。 今...
-
CSVのインポート【ASP.NET】
-
XMLHttpRequestでウェブページ取得
-
表を表示するコントロールについて
-
INIファイルに一括書き込みを行...
-
ASP.NET GridView の検索画面で...
-
C言語で地図を描きたい
-
MSFlexGridのデータを初期化し...
-
小数点以下を含む計算でバグが...
-
Windowsのマクロプログラムで、...
-
ActiveReportのサブレポート機...
-
VB6.0とスプレッドシート
-
VB 音の波形を取得する関数は?
-
ファイルのアップロードについて
おすすめ情報