2010-12-20 13 views
1

私は動的に同じページを繰り返し作成することに明確な答えを見つけることに苦労しています。私が見つけた質問とサンプルは、このトピックの全面的なものであるようです。私はライフサイクルを研究していますが、コードがどこに行くべきかについてはまだ明確な答えがないようです。C#のページで動的にasp.netを作成する

私はマスターページとコンテンツページを持っています。コンテンツエリア内のすべてのコンテンツを動的に作成する必要があります(テキストボックス、ddl、ページタブ、ボタン/ onclickなど)。

ユーザーがデータを入力して送信ボタンをクリックすると、フォームから値を読み取り、ページを完全に再構築する必要があります(現在のコンテンツにコントロールを追加/削除しない)。

私の質問は次にあります。 ページを作成するコードはどこに置いておきますか? この領域ではIsPostBackを使用できるので、Request.Form値でコンテンツを再構築できますか? 私のボタン_Clickイベントは機能しますか? 私に指示できるサンプルがありますか?

答えて

1

私はあなたの質問にすべての答えを知らない...フィードバックをありがとうございましたが、私は、これはあなたが始められることを願っています。コードでUIを動的に生成する場合、これはInitで発生します。初期化とロードの間、ポストバック時にはviewstateがロードされるため、Initに動的にロードされるコントロールはキーです。

これは、すべてのポストバックで前のコントロールツリーと一致するようにページを再作成し、UIの変更が必要な場合は新しいUIを再作成してから再構築する必要があることを意味します。これは、同じUIを決定するためにツリー構造を検証するためです。今、あなたがviewstateを必要としないなら、これはあまり問題ではないかもしれません。私はそれが違うかどうかを見るためにviewstateなしでこれを検証していません。

ビューステート(大きな要因)が必要かどうかは、それがどのように動的であるかによって異なります。

HTH。あなたが必要なもの

1

は、ページのPREINIT方法でコントロールを作成してみてください参照してください。 "IsPostBack"が動作し、クリックイベントハンドラも同様に動作するはずです。

+0

ここに行く方法はPreInitです。コントロールはOnInitイベントに復元され、プロパティはコントロールに割り当てられますが、名前が同じ場合にのみ – citronas

0

ブライアンのアドバイスは良いですし、あなたはそれに従うべきです。

これは本当にあなたの質問に答えることはできませんが、それでもアドバイスとして追加します。私は専門的にASP.net Webアプリケーションを非常に大規模に作成しています。私の経験から、あまりにも多くの「ダイナミクス」は通常悪く、複雑さが増すため避けるべきです。通常、UIパーツをASP.net UserControlsに公開したい場合や、ASP.netサーバーコントロールに再利用できるようにしたい場合は、それを要素として使用します。その後、最初からすべてを作成するのではなく、動的に異なるものを置き換えます。

関連する問題