0

私の髪の毛を抜いて、ウェブを少し見て、私の問題のエレガントな解決策を見つけようとしています。

ProductImages.aspxページがあります。動的に作成されたリストに、その製品に関連付けられているすべての画像が表示されます。イベントは各画像に接続されており、更新できるようになっています。

これは正常に機能します。

ただし、最後に新しい画像を追加するオプションがあります。これは、AddImageメソッドの呼び出しを開始するボタンです。

現在、元のコントロールが作成され、イベントとともにページに追加されています。次に、ボタンイベントが発生すると、既存のすべての画像コントロールと新しい画像コントロールが再作成されます。このポイントを追加すると、OnInitの後にイベントが追加されるため、OnInitにイベントがアタッチされなかった後に新しいイメージコントロールが作成されます。

Response.Redirectを実行してページをリロードし、OnInitを起動してイベントを再度接続できますが、これは非常にエレガントではないようで、更新パネルを使用する意味がなくなります。

何か案は?

4

2 に答える 2

1

いつでも画像アップロードコントロールをdivにロードし、javascriptリンクを使用してdivの表示属性を切り替えることができると思います。

または、AjaxToolKitのCollapsiblePanelsを使用して、アップロードフォームを表示および非表示にします。

これらの方法のどちらも、画像アップロードフォームを取得するためだけに(UpdatePanelにある場合でも)ポストバックを行うよりもエレガントだと思います。

于 2009-05-08T20:16:58.483 に答える
0

あなたの質問は、あなたがOnInitにコントロールを置くことができないと言っているように聞こえます。なぜなら、それはページの最初のロードでのみ起動されるからです。これは当てはまりません。OnInitはページが読み込まれるたびに起動されるため(ポストバックを含む)、更新パネルを使用している場合でも、そこでコントロールを再作成できます。

初期ロードとポストバックで異なるプロパティの1つは、Page.IsPostbackプロパティです。これを使用して、ページの最初のロードでアクションを実行するだけです。

于 2009-09-01T20:08:17.417 に答える