aspx ページから ascx モーダル ポップアップにデータを渡すにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/12671

  •  08-06-2019
  •  | 
  •  

質問

私は ASP.NET についてはかなり初心者で、物事がどのように行われるかを学ぼうとしています。私は C# のバックグラウンドを持っているので、コードビハインドの部分は簡単ですが、Web 開発者のように考えるのは慣れていません。

チェックボックスのグリッドを含む aspx ページがあります。Button_Click イベントを介してコード化されたボタンがあり、チェックされる行のリストを収集し、そのリストからセッション変数を作成します。同じボタンは、ascx ページのパネルを制御する ascx ページの ModalPopupExtender によって (TargetControlID 経由で) 参照されます。

ボタンをクリックすると、モーダル ポップアップが開きますが、Button_Click イベントは発生しないため、モーダルはセッション データを取得しません。

2 つのページは別々であるため、aspx.cs コードから ModalPopupExtender を呼び出すことができません。ascx.cs コードからチェックボックスのリストにアクセスできません。また、セッション変数に値を設定する方法がわかりません。次に、プログラムで他の隠しボタンまたはコントロールをアクティブにして、モーダル ポップアップを開きます。

何かご意見は?

役に立ちましたか?

解決

usercontrol(.ascx) ファイルはすべて、再利用可能な機能を提供するためにグループ化されたコントロールのセットです。ここで定義されているコントロールは、ページのライフサイクル中に引き続きページのコントロール コレクション (.aspx) に追加されます。ModalPopupExtender は、javascript と dhtml を使用して、ユーザー コントロールのクライアント側のコントロールを表示および非表示にします。表示されているのは、クリック イベントが ModalPoupExtender によってクライアント側で処理され、サーバーへのポストバックがキャンセルされているということです。これは設計によるデフォルトの動作です。ただし、ユーザー コントロールはすべて同じコントロール ツリーの一部であるため、ユーザー コントロールのコードビハインドからページのコントロール コレクションにアクセスすることは確かに可能です。任意のコントロールの FindControl(xxx) メソッドを使用して、必要なコントロールの子を検索するだけです。

他のヒント

DancesWithBamboo の回答に従っていくつかの調査を行った後、それを機能させる方法を見つけました。
私の aspx ページ内の私の ascx ページへの参照の例:

<uc1:ChildPage ID="MyModalPage" runat="server" />

ModalPopupExtender (modalPopup という名前) を取得して開くための aspx コードビハインドは次のようになります。

AjaxControlToolkit.ModalPopupExtender mpe = 
    (AjaxControlToolkit.ModalPopupExtender) 
          MyModalPage.FindControl("modalPopup");
mpe.Show();

申し訳ありませんが、混乱しています。ascx を直接呼び出すことはできないので...

非表示のパネルなど、同じページ内から呼び出しているモーダル コードですか。

それとも、クリック イベントで呼び出している別の aspx ページですか?

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