1

私が抱えている問題は、コーディングの問題ではなく、デザインの問題ではないかと心配していますが、とにかく質問します。

データベースの値に基づいて 2 つの異なるユーザー コントロールを動的に読み込む ASP.NET 2.0 Web アプリケーションがあります。これらの各ユーザー コントロールの内部には、基本的に FormView コントロールと、データベースからの値を表示する SqlDataSource コントロールがあります。これらのコントロールの 1 つはデータの表示専用で (レイアウトを簡単に制御できるように FormView を使用しました)、もう 1 つの FormView はユーザーが編集できるようにする必要があります。

このページで、ユーザーはドロップダウンを選択して、コントロールのロードに使用する「マジック値」を変更できます。このドロップダウンでは、自動ポストバックが有効になっています。

ポストバックが発生すると、コントロールが動的にロードされた後はすべて問題ないように見えますが、編集ボタンをクリックすると、FormView を「編集」モードにせずにページが更新されるだけです。これを行うには、[編集] ボタンをもう一度クリックする必要があります。

それで、私の質問は、どうすれば余分なマウスクリックが必要になるのを止めることができますか? ポストバックで物事がどのように構築されるかに関係があると考えていますが、私の脳は今揚げられており、誰かがすでにこの問題を解決していることを望んでいました.

4

1 に答える 1

1

ユーザーコントロールをどこ(どのイベント)にロードしていますか?コントロールがロードされるまでに、編集ボタンがすでに(何も接続されていない)可能性があります...

編集: page_load と selected_index_changed にブレークポイントを配置して、それらがいつ発生するかを確認します。page_load が最初に発生し、ワイヤアップが消去される可能性があります。!IsPostBack によって保護されたコントロールを読み込んでいて、ViewState がオンになっていますか? Viewstate はコントロールを自動的に復元している可能性がありますが、page_load はそれらを再び消去しています...

...コードがないと確認するのは難しいです。トレースをオンにして、メソッドにトレース出力を追加して、いつ何が起こるかを正確に確認し、生成された html ツリーを確認することもできます。

于 2008-11-06T02:47:58.340 に答える