8

リストに対する.NET repeaterコントロールがあります。data-boundリピーターの一部として、Item Collectionこの現在のリスト要素を効果的に削除する「削除ボタン」があります。

これは機能します。コードビハインドでdatasourceは、リピーターのからアイテムを正常に削除できます。

私の問題はこれです:更新をリセットして再度datasource呼び出すと、アイテムが削除された状態でリピーターインターフェイスが更新されません。MyRepeater.DataBind()

更新されたリストに基づいてリピーターを本質的に再描画または更新するイベントを探しています。ポインタや例をありがとう。

4

5 に答える 5

3

データソースで「DataBind」メソッドを呼び出してから、Repeater コントロールで「DataBind」を呼び出す必要があります。

于 2009-01-20T22:20:05.250 に答える
1

更新されたデータソースにデータを供給していますか?

コードビハインドでデータソースを設定する場合は、更新されたデータでデータソースを設定してから、DataBindメソッドを呼び出す必要があります。

于 2009-01-20T22:07:29.907 に答える
1

Repeater Control と DataTable ソースでそのようなことに遭遇しました。

DataTable には Refresh メソッドはありませんでしたが、最初のページの読み込み時に DataTable.EnableDynamicData(typeof(DataTable)) を呼び出すことで問題が解決しました。

于 2014-12-26T19:13:48.310 に答える
0

私も同様の状況にありました...両方ともUpdatePanel内のxmlDataSourceにバインドされたリピーター。ユーザーが一度に1つの名前を入力し、[追加]ボタンをクリックして、リピーターのリストを更新できるようにしたかったのです。

リピーターとxmlDataSourceで「EnableViewState」をFalseに設定し、xmlDataSourceでも「EnableCaching」をFalseに設定しました。xmlDataSourceのDataBindと呼ばれるxmlDataSourceのDataプロパティを設定し、リピーターのDataSourceIDプロパティを設定してから、リピーターのDataBindと呼びます。多分それはやり過ぎでした...しかしそれはうまくいきました。多分これは役立つでしょう。

更新:リピーターコントロールでEnableViewStateをFalseに設定すると、ItemCommandイベントが発生しないことがわかりました。ただし、データソースのEnableViewState / EnableCachingをFalseに設定するだけでよいと思います...リピーターのEnableViewState設定をTrueに戻したので、すべてうまくいくようです。

于 2009-01-29T16:32:07.350 に答える
0

通常、DataBind の強制は、 PreRenderイベントで自動 DataBind が行われる場所で行われます。

通常、クリック イベントで削除を行った場合、preRender で自動的にページ上のコントロールが DataBind() になるため、リピーターは自動的に更新されます。マイクロソフトのドキュメントが言うことは次のとおりです。

PreRender : このイベントが発生する前に、DataSourceID プロパティが設定されている各データ バインド コントロールは、その DataBind メソッドを呼び出します。

ソース

したがって、おそらく Youritem.DataSource = List に影響を与えた可能性がありますが、MS は YourItem.DataSourceID = List.ID などを実行することをお勧めします。

それが役に立てば幸い

于 2009-01-20T22:16:37.550 に答える