- PR -

複数コントロールのループ処理

投稿者投稿内容
achi
会議室デビュー日: 2006/01/08
投稿数: 17
投稿日時: 2006-01-18 16:55

Katze様、さかもと様、じゃんねねっと様


返信ありがとうございます。

記入洩れですみません、Webフォームです。
項目100個は例えでして・・・。
ただ、実際は40個のチェックボックスがあります

早速Katze様のサンプルを参考に
WebMatrixで確認してみたのですが

BC30684: 'CheckBox' は型であるため、式として使用することはできません。

となってしまいました。

ソースは以下としております。
まずい点ありますでしょうか。

Sub Page_Load(sender As Object, e As EventArgs)

If Not Page.IsPostBack Then
Dim wCtrlCheckBox As CheckBox
Dim i As Integer

For i = 1 to 100
wCtrlCheckBox = CType(FindControl("CheckBox" & Trim(i.ToString), CheckBox))
If (Not IsNothing(wCtrlCheckBox)) Then
wCtrlCheckBox.Visible = False
End If
Next
End If

End Sub

Sub Button1_Click(sender As Object, e As EventArgs)

Dim wCtrlCheckBox As CheckBox
Dim i As Integer

For i = 1 to 100
wCtrlCheckBox = CType(FindControl("CheckBox" & Trim(i.ToString), CheckBox)
If (Not IsNothing(wCtrlCheckBox)) Then
wCtrlCheckBox.Visible = False
End If
Next

End Sub


どうぞよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-18 16:59
引用:

achiさんの書き込み (2006-01-18 16:55) より:

BC30684: 'CheckBox' は型であるため、式として使用することはできません。
(snip)
wCtrlCheckBox = CType(FindControl("CheckBox" & Trim(i.ToString), CheckBox))


ここ、おかしいですよね?
リファレンスを見てみましょう。

  FindControl メソッド

どうなっていますか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-01-18 17:07
すいません,先に記述した例が間違ってました。
括弧がひとつ足りません。

wCtrlCheckBox = CType(FindControl("CheckBox" & Trim(i.ToString)), CheckBox)

では,どうでしょうか?

と書いていたら じゃんぬさん に先を越されてしまった。
じゃんぬさんありがとうございます。


[ メッセージ編集済み 編集者: Katze 編集日時 2006-01-18 17:16 ]
achi
会議室デビュー日: 2006/01/08
投稿数: 17
投稿日時: 2006-01-18 17:24
じゃんぬねっと様、Katze様

成功しました、ありがとうございました。


ちなみにテーブル更新の際のパラメータ定義もこんな感じで
見苦しいのですが、何とかなりますでしょうか?。

Dim p01 As SqlParameter = cmd.Parameters.Add("@p01", SqlDbType.Bit, 1)
Dim p02 As SqlParameter = cmd.Parameters.Add("@p02", SqlDbType.Bit, 1)
Dim p03 As SqlParameter = cmd.Parameters.Add("@p03", SqlDbType.Bit, 1)



Dim p40 As SqlParameter = cmd.Parameters.Add("@p40", SqlDbType.Bit, 1)


じゃんぬねっと様
 先の返信でユーザーコントロール・・・といったメッセージがありましたが
 この辺の定義だけ格納しておくこと、これはOKでしょうか。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-18 17:32
引用:

achiさんの書き込み (2006-01-18 17:24) より:

成功しました、ありがとうございました。


良かったですね。
ただ、FindControl メソッドだとコンパイル解決なされていないため、
本来はユーザーコントロールで対応したり、参照で対応するのが望ましいです。

引用:

ちなみにテーブル更新の際のパラメータ定義もこんな感じで
見苦しいのですが、何とかなりますでしょうか?。


別の質問は別のスレッドを建てた方が良いと思います。
後から同じ問題で悩んでいる人達のためにもです。
(@IT 会議室は情報共有の場らしいです)

引用:

先の返信でユーザーコントロール・・・といったメッセージがありましたが
この辺の定義だけ格納しておくこと、これはOKでしょうか。


すいません。(*_ _)
「この辺の定義だけ格納しておくこと」の意味はちょっと判りませんでした。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)