質問

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

お役に立てば幸いです。

リカルド。

次のブログ投稿にもリピーター イベントに関する優れた記事があります。

LinkBut​​ton、リピーター内のラベル - ASP.NET

同様の状況があったと思いますが、オプションは、EnsureChildControlsまたは同様のメソッドを呼び出して、コントロールを強制的にバインドすることでした。

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