PreRender イベントの後に ASP.NET リピーターのItemDataBound が発生しますか?
-
03-07-2019 - |
質問
ASP.NET 2.0 Web フォームにリピーター コントロールがあります。
私が理解しているところによると、ページのすべてのデータバインドされたコントロールは、 Page_Load
そしてその Page_PreRender
イベント。
しかし、私のリピーターさんは、 ItemDataBound
イベントはその後に発生しているようです PreRender
イベント。
これはどうしてなのでしょうか?また、すべての操作を行った後にページ コントロールにアクセスする方法はありますか? ItemDataBound
イベントが発生しましたか?
更新情報:
リピーターは
ObjectDataSource
とともにDataSourceID
リピーター コントロールに宣言的に設定されます。DataSource ID またはオブジェクトは、ページのライフサイクル中にまったく変更されません。
解決
宣言的データバインディング(DataSourceIDプロパティで指定されたデータソース)は、PreRenderイベントよりも後に発生します。観察している動作は仕様です。これが必要なものではない場合、コントロールを明示的にデータバインドする必要があります-そのDataBindメソッドを呼び出すだけです。
他のヒント
コードビハインドファイル(たとえばPage_Load()イベント内)でリピーター(myRepeater.DataBind();)を具体的にバインドしていますか?
ASP.NETイベントのライフサイクルをチェックアウトしましたか?既にこれを知っている場合は申し訳ありませんが、念のため: http:// msdn。 microsoft.com/en-us/library/ms178472.aspx
お役に立てば幸いです。
リカルド。
次のブログ投稿にもリピーター イベントに関する優れた記事があります。
同様の状況があったと思いますが、オプションは、EnsureChildControlsまたは同様のメソッドを呼び出して、コントロールを強制的にバインドすることでした。