※ ChatGPTを利用し、要約された質問です(原文:宣言していないチェックボックスの判定)
宣言していないチェックボックスの判定
お世話になっております。
【環境】
作業マシン:WINDOWS Server2008 (仮想)
開発ツール:VWD2010(VB)
使用DB:SQLServer2008R2
Webフォームにてアプリを開発しております。
ASP.NET VBでの開発の経験はおおよそ3ヶ月程です。
【目的】
オンロード時、外部ログテキストファイルを元に、表のhtmlを作成しています。(test.vb)
表の作成はhtml文をLavelに放り込む形で作成しているのですが、(test.aspx)
この表にチェックボックスを配置し、削除ボタン押下イベント時には
チェックを入れた行の"名前"文字列を取得、外部exeに渡す。
…といった処理をしたいと思っております。
例えば、添付表1行目にチェックがついたのならば"一之瀬"という文字列を取得します。
【質問内容】
どうすれば、htmlで作成したチェックボックスの判定が出来るでしょうか?
チェックボックスのチェック判定には、サーバー側(test.vb側)で、
if (checkbox1.Checked == true)…
等でチェックの有無を確認すればよい、というのは判るのですが、
この"checkbox1"はhtml表示こそできてはいますが宣言されたものではありません。
ですので、text.vb内でチェック有無判定をしようとすると宣言なしエラーとなります。
しかし前もって宣言するのは、
処理件数が1件か100件か判らないのに
変数宣言だけするのもおかしいと感じています。
おそらく自分が判って居ないのは
「動的な宣言の方法」
「変数名に変数を用いる方法」 (str_XX :XXが数字部分でカウントアップしていく)
なのではないかと考えているのですが、
なかなか近い内容の資料が見つけられず
「もしやそもそもの考え方が誤って居るのではないか?」 と、はまっております。
何卒、ご教授お願いします。
-----------test.vb ここから------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'文字列と件数は外部ファイルから読み取る
Dim tmp_str As String = "一之瀬,二ノ宮,三津橋"
Dim tmp_array() As String = Split(tmp_str, ",")
Dim kensu As Integer = 3
'件数不定の表htmlを作成する
Dim tmp_html As String = "<table border=""1"">"
'ヘッダ部
tmp_html += "<tr><td>No.</td><td>名前</td><td>check</td></tr>" + vbCrLf
'行数は件数によって不定
Dim count As Integer = 0
Dim number As Integer = 1
While (count < kensu)
tmp_html += "<tr><td>" + number.ToString + "</td><td><span id=""label" + number.ToString + """" + ">" + vbCrLf
tmp_html += tmp_array(count) + "</span></td>"
tmp_html += "<td><input id=""checkbox" + number.ToString + """" + " "
tmp_html += "type=""checkbox""" + " "
tmp_html += "name=""checkbox" + number.ToString + """"
tmp_html += " /></td></tr>" + vbCrLf
count = count + 1
number = number + 1
End While
'表を終了
tmp_html += "</table>"
LabelX.Text = tmp_html
End Sub
-----------test.vb ここまで------------
-----------test.aspx ここから------------
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="LabelX" runat="server" Text="表html"></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" Text="削除" />
</div>
</form>
</body>
</html>
-----------test.aspx ここまで------------
-----------表のhtml (件数分作成される箇所)------------
<span id="LabelX">
<table border="1"><tr><td>No.</td><td>名前</td><td>check</td></tr>
<tr><td>1</td><td><span id="label1">一之瀬</span></td>
<td><input id="checkbox1" type="checkbox" name="checkbox1" /></td></tr>
<tr><td>2</td><td><span id="label2">二ノ宮</span></td>
<td><input id="checkbox2" type="checkbox" name="checkbox2" /></td></tr>
<tr><td>3</td><td><span id="label3">三津橋</span></td>
<td><input id="checkbox3" type="checkbox" name="checkbox3" /></td></tr>
</table></span>
お礼
Onos様、いつもありがとうございます。 Responce.form("[タグid]")で、値が取得出来ることを確認しました。 「動的htmlにサーバーコントロールを追加」する方法も 合わせて知っておく必要を感じていますが 今回のケースでは教えていただきました方法で対処できそうです。 解決後、報告&BA設定いたします。 ありがとうございました。
補足
日が開いてしまいましたが、 教えていただいた方法での問題解決ができました。 ありがとうございました。