16

asp.netでは、いつグリッドビューをバインドしますか?Page Load()またはPage Init()....なぜですか?

4

2 に答える 2

13

通常、Load()以降でバインドする必要があります。Init()イベントは、バインドが発生する前に動的に作成されたコントロールを作成できるようにすることを目的としています。これにより、バインドを実行する必要があるときにコントロールが存在します。Load()だけがオプションではありませんが、何らかの理由でコントロールのバインドを遅らせる必要がある場合は、PreRender()イベントでバインドすることもできます。必要に応じて、Load()でさらにセットアップを行い、ページのDataBind()メソッドを呼び出し、ページバインディングイベントを処理して、さらに構造化された方法でバインドすることもできます。

于 2009-06-02T16:21:21.630 に答える
4

特定のケースによって異なりますが、最も一般的な答えはPage_Load、ほとんどのデータバインディングシナリオでは一般的に十分であるためです。

複雑なデータバインディングシナリオの場合でも、GridViewなどのコンテナコントロールはイベント中にのみ子をロードするため、適切な場所でPage_Initありません。Page_Loadこれらの子供たちにアクセスするには、ライフサイクルをさらに下る必要があります。

しかし、私の場合、答えは「どちらでもない」でしょう。これは、コントロールを内に直接データバインドしたことがないためですPage_Load。代わりに私が好むのは、データバインディングを実行し、ポストバック後に再バインドする必要がある場合にPage_Loadまたはその他の関数から呼び出すことができる別のメソッドを用意することです。

于 2009-06-02T16:26:53.783 に答える