|
分類:[VB.NET/VB2005 以降]
2008/12/01(Mon) 21:07:25 編集(投稿者) 2008/12/01(Mon) 21:04:12 編集(投稿者)
こんにちは。
VB2008 ( / VB2005)、WindowsXPにて開発の勉強をしています。
「Visual Basic Power Packs 3.0」に入っている、DataRepeaterについてなんですが タイトルの通り、DataRepeater内の 任意の行の、いずれかのコントロールの値を 取得したい…などの時はどのようにすれば良いでしょうか?
これまでは下記の様なコードで各行の値を取っていたんですが CurrentItemIndexChangedイベントが使えなくなる、Focusが面倒な事になる、等の デメリットがあるので他の方法を模索しています。
━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ DataRepeater(DataRepeater1)の中に、TextBox(txtPrice)を配置
' 元の行の行番号 Dim intNowRow As Integer = DataRepeater1.CurrentItemIndex ' 金額欄 合計値 Dim intSumPrice As Integer = 0
' 全ての行についての金額の和を取得 For idx As Long = 0 To DataRepeater1.ItemCount - 1 DataRepeater1.CurrentItemIndex = idx intSumPrice = intSumPrice + DataRepeater1.Controls( txtPrice.Name ).Text Next
' 元の行に戻す DataRepeater1.CurrentItemIndex = intNowRow
MsgBox( intSumPrice.ToString )
━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━
それらしきDataRepeaterのメンバを探し回ってみたんですが それっぽいものが全くありません。 各行の特定のコントロールの合計値取得などだけならば、 直接データソース側から取得すれば良さそうなんですが これだと選択行の色変更等には使えませんし。
どなたか、お分かりの方、教えて下さい。
|