
現在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
-
ASP.NetのGridViewで任意の行クリックで選択を行う方法
Microsoft ASP
-
asp.netにてgridviewの列を動的にボタンやチェックボックスを追加して実装したいのですが具
Microsoft ASP
-
-
4
グリッドビューでのチェックボックス押下時イベント
Visual Basic(VBA)
-
5
【ASP.NET】ページ遷移してもGridView内の値を保持する方法
その他(プログラミング・Web制作)
-
6
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
7
TextChangeイベントが発生しない
JavaScript
-
8
ASPで画面間のパラメタ受け渡し
Microsoft ASP
-
9
ASP.NET(VB)でのデータグリッドを横方向に表示したい
Microsoft ASP
-
10
テキストボックスのクリックでカレンダー表示
Microsoft ASP
-
11
ASP.netで、CheckBoxListのSelectedIndexChangedが発生しません!
Microsoft ASP
-
12
【C#】Page_Loadさせない方法について
その他(プログラミング・Web制作)
-
13
ASP.Net 別ウィンドウを開く・ジレンマ編
Microsoft ASP
-
14
GridViewの行選択イベントを発生させるには?
JavaScript
-
15
GridViewの項目編集(初歩)
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DTOとEntityの差は何ですか。
-
WordでExcelデータを差込...
-
「外部データの取り込み」とい...
-
Windowsのマクロプログラムで、...
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
ActiveReportのサブレポート機...
-
エクセルで、2つのセルに検索値...
-
Dosブロンプトでtabを出力したい
-
「取得先」という表現について
-
バッチファイルでpingの結果を...
-
Yahoo! JAPAN IDを新規取得でき...
-
小数点以下0の非表示
-
findstrのerrorlevel
-
VB.NETでボリュームを取得・設...
-
sql、where複数条件
-
VBAでPDFのアクティブページ番...
-
Excel VBA:特定の文字列以降(...
-
開始と終了を指定して、その間...
-
phpでcookieがうまく保存されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
VisualBasic2010のPictureBoxに...
-
MSFlexGridのデータを初期化し...
-
VB.NET 2017の勉強中です。 今...
-
ActiveReportのサブレポート機...
-
VBA内でのGetPixelを使用した時...
-
GridViewからチェックボックス...
-
INIファイルに一括書き込みを行...
-
ADOを使用してExcelファイルを...
-
★お手上げ状態です。助けてくだ...
-
VB6.0とスプレッドシート
-
EXCEL VBAで NHK NEWSの NEWSデ...
-
Windowsのマクロプログラムで、...
-
エクセルで株価&財務データを...
-
CSVのインポート【ASP.NET】
-
アクセス+VBA 最適化
おすすめ情報