C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 108 を表示中)
■64603 / )  DataRepeaterにバインド以外でデータを表示したい
□投稿者/ たまご (1回)-(2012/12/10(Mon) 19:43:53)

分類:[VB.NET/VB2005 以降] 

お世話になります。

VB2010、DataRepeater使用しています。

DataRepeaterで、データをバインドではなく個別に設定する方法がわかりません。

ItemTemplate内に複数のオブジェクトを貼り付け、
その中にLabel1(Label、値「No」)が含まれます。

この状態でデータバインド後、プログラムから行を指定して値を設定したいのですが、うまくいきません。

・・・データ取得
DataRepeater1.DataSource = dt 'DataTable。1000件程度のデータあり
For i = 0 To DataRepeater1.ItemCount - 1
DataRepeater1.CurrentItemIndex = i
CType(DataRepeater1.CurrentItem.Controls("Label1"), Label).Text = i.ToString
Next

上記ソースを実行すると、Forのループ中は画面が描画されてカウントが
増えていっているのが見え、終了すると画面上には「998」「999」「1000」等の
値が表示され、うまくいったように見えるのですが、スクロールしてみると
「998」「997」「No」「995」「996」「No」「997」「998」のように、
最初設定した値とは違う値が表示されてしまいます。

そもそも、DataRepeaterはバインド以外で個別にデータを表示する事はできないのでしょうか。

また、最終的には編集されたデータを取得して処理したいのですが、
DataRepeater1.Rows(999).TextBox1.Text
のように「行番号」を指定してデータを取得する事ができず、
DataRepeater1.CurrentItemIndex = 999
For Each ctl As Control In DataRepeater1.CurrentItem.Controls
・・・
のように、現在行を変更してからCurrentItem経由で値を取得する方法しか見つかりませんでした。

・DBの値を自由なレイアウトで一覧表示したい
・バインド以外で自由にデータを表示したい
・行番号を指定してデータの設定、取得がしたい
という要件の場合、DataRepeaterでは難しいのでしょうか。

返信 編集キー/


管理者用

- Child Tree -