-PR-
  • 困ってます
  • 質問No.7630954
解決
済み

宣言していないチェックボックスの判定

  • 閲覧数232
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 89% (81/91)

お世話になっております。

【環境】
作業マシン: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>
通報する
  • 回答数1

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

  • 回答No.1
レベル11

ベストアンサー率 81% (127/155)

HTMLとして(文字列連結で)生成しているものですから、コントロールとして扱うことはできません。
HTMLレベルでサーバーにあがってくる情報をチェックするしかないかと。
Request.Form("checkbox1")とかで値が確認できると思います。
補足コメント
wendy0303

お礼率 89% (81/91)

日が開いてしまいましたが、
教えていただいた方法での問題解決ができました。

ありがとうございました。
投稿日時 - 2012-08-20 08:58:57
お礼コメント
wendy0303

お礼率 89% (81/91)

Onos様、いつもありがとうございます。

Responce.form("[タグid]")で、値が取得出来ることを確認しました。

「動的htmlにサーバーコントロールを追加」する方法も
合わせて知っておく必要を感じていますが
今回のケースでは教えていただきました方法で対処できそうです。

解決後、報告&BA設定いたします。
ありがとうございました。
投稿日時 - 2012-08-07 10:01:09
-PR-
-PR-
  • 回答数1
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ