0

asp.net Web サイト (mvc ではない) で使用するユーザー コントロール (.ascx) を作成しました。コントロールにはいくつかのテキスト ボックスがあり、ユーザーは新しい顧客を入力できます。2 つのボタンがあり、1 つは顧客を追加するためのもので、もう 1 つはコントロールをキャンセルするためのものです。以下に示すコードで「ModalPopupExtender」を使用して、コントロールの表示を呼び出します。

これは updatePanel にあります。

<asp:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="hiddenButton"
 PopupControlID="Panel3" BackgroundCssClass="modalBackground" DropShadow="true"/>

Panel3 マークアップは次のとおりです。

<asp:Panel ID="Panel3" runat="server" Style="display: none" CssClass="modalPopup" Width="100%" Height="100%">
    <uc3:CustomerForm  runat="server" ID="CustomerForm1" ParentUpdatePanel="UpdatePanel1" ErrorDisplayControl="lblErrorMessage"/>
</asp:Panel>

メイン ページのボタンをクリックすると、コード ビハインドが次のように呼び出します。

ModalPopupExtender2.Show();

これは私のコントロールを示しており、新しい顧客を追加するとデータベースが更新されるため、この側面は正常に機能します。私がする必要があるのは、コードを強化して、顧客が追加されてユーザーコントロールが閉じられると、メインページの顧客ドロップダウンリストに更新された顧客リストが読み込まれ、ユーザーが入力した顧客が選択されるようにすることです. ドロップダウンリストはデータバインドされているので、私の質問は、新しい顧客が追加されたかどうかを判断し、リストを再データバインドして正しいアイテムを選択できるように、ユーザーコントロールがいつ閉じられたかをどのように知ることができますか? asp.net と javascript を使用することは、私が得意とする分野ではないため、間違った用語を使用していた場合はご容赦ください。

4

1 に答える 1

0

私は自分の問題の解決策を見つけました。私のユーザーコントロールでは、新しい顧客が追加された後、次のように呼び出します。

RaiseBubbleEvent(this, new CustomerArgs {OrganisationId = organisationId});

呼び出しページのコード ビハインドで、バブル イベントをリッスンします。

protected override bool OnBubbleEvent(object sender, EventArgs e)
{
    if (sender is CustomerForm && e is CustomerArgs)
    {
        _organisationID = (e as CustomerArgs).OrganisationId.ToString();
        DoOrganisationListDataBind();
        return true;
    }
    return false;
}

これは、私が求めているものに対してうまく機能します。これが良い方法かどうかはわかりませんが、うまくいきます。

于 2013-09-23T10:42:10.403 に答える