知道ModalPopupExtender用户控件何时关闭

时间:2013-09-23 08:55:06

标签: c# javascript asp.net

我创建了一个usercontrol(.ascx),用于我的asp.net网站(不是mvc)。该控件有几个文本框,允许用户输入新客户。它有两个按钮,一个用于添加客户,另一个用于取消控制。我通过使用“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不是我有很多技巧的领域,所以如果我使用了错误的术语,请原谅。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。在我的usercontrol中,在添加新客户后,我致电:

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;
}

这适用于我所追求的目标。不确定这是否是一种很好的方法,但它有效。