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

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

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

Re[2]: DataRepeaterにバインド以外でデータを表示したい


(過去ログ 108 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■64603 / inTopicNo.1)  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では難しいのでしょうか。

引用返信 編集キー/
■64605 / inTopicNo.2)  Re[1]: DataRepeaterにバインド以外でデータを表示したい
□投稿者/ shu (127回)-(2012/12/11(Tue) 07:52:24)
No64603 (たまご さん) に返信

データバインディングしない方法は難しいと思います。
DataSourceに指定しているDataTableに必要な項目をもうけ
編集はDataTable上で行うとよいかと思います。
>・DBの値を自由なレイアウトで一覧表示したい
>・行番号を指定してデータの設定、取得がしたい
を行うことは出来ると思います。
引用返信 編集キー/
■64618 / inTopicNo.3)  Re[2]: DataRepeaterにバインド以外でデータを表示したい
□投稿者/ たまご (2回)-(2012/12/11(Tue) 21:15:10)
No64605 (shu さん) に返信
> ■No64603 (たまご さん) に返信
>
> データバインディングしない方法は難しいと思います。
> DataSourceに指定しているDataTableに必要な項目をもうけ
> 編集はDataTable上で行うとよいかと思います。
> >・DBの値を自由なレイアウトで一覧表示したい
> >・行番号を指定してデータの設定、取得がしたい
> を行うことは出来ると思います。

shuさん、ご返信有難うございます。
DataTable上で変更を行い、バインドしたところ、正常に表示されました。
やはり、データバインディングありきのコントロールなのですね。
もう少し、いじってみようと思います。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -