質問

リストに対して.NET repeaterであるdata-boundコントロールがあります。リピーターのItem Collectionの一部として、<!> quot; Remove Button <!> quot;があります。これにより、この現在のList要素が効果的に削除されます。

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

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

更新されたリストに基づいて、基本的に Repeater を再描画または更新するイベントを探しています。ポインタや例に感謝します。

役に立ちましたか?

解決

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

他のヒント

更新されたデータソースをフィードしていますか?

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

リピーターコントロールとDataTableソースを使用して、そのようなものに遭遇しました。

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

似たような状況がありました... UpdatePanel内のxmlDataSourceにバインドされたリピーター。ユーザーに一度に1つの名前を入力させてから、<!> quot; Add <!> quot;リピーターのリストを更新するボタン。

<!> quot; EnableViewState <!> quot;を設定します。リピーターとxmlDataSourceでFalseに設定し、<!> quot; EnableCaching <!> quot;を設定します。同様にxmlDataSourceをFalseにします。 xmlDataSourceのDataBindと呼ばれるxmlDataSourceのDataプロパティを設定し、リピーターのDataSourceIDプロパティを設定してから、リピーターのDataBindと呼ばれます。多分それは行き過ぎだった...しかし、それは働いた。たぶんこれが役立つでしょう。

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

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

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

  

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

ソース

したがって、おそらくYouritem.DataSource = Listに影響がありますが、MSはYourItem.DataSourceID = List.ID、またはそのようなことを行うことをお勧めします。

希望する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top