SƲmmēr Aƥ
SƲmmēr Aƥ

Reputation: 2504

ModalPopupExtender does not work properly after autopostback

I have 2 updatepanels, and the first one came along with link button to open modal popup, I realized that those validator must be set to enabled to false, before it can popup. The 2nd updatepanel came along with panel and those button cancel and button confirm. Before autopostback, everything work properly. But I wonder why after autopostback, then the cancel button cant even close the modal popup anymore, and also the confirm button does not work anymore.

<asp:UpdatePanel ID="uptbl" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<asp:ModalPopupExtender ID="mpe" runat="server"
        TargetControlID="btnDummy"
        PopupControlID="UpdatePanel1"
        BackgroundCssClass="modalBackground"
        OkControlID="btnDummy"
        CancelControlID="Button2"
        BehaviorID="mpeBehavior" />
<input id="btnDummy" runat="server" type="button" style="display: none;" />

</ContentTemplate>
</asp:UpdatePanel>


<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlLength" runat="server" AutoPostBack="true" onselectedindexchanged="ddlLength_SelectedIndexChanged">
<asp:ListItem>---Select Minutes---</asp:ListItem>
<asp:ListItem Value="60">60</asp:ListItem>
<asp:ListItem Value="120">120</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" InitialValue="---Select Minutes---" 
                                 runat="server" ErrorMessage="Minutes is required!"
                                 ControlToValidate="ddlLength" Display="Dynamic"
                                 CssClass="error" Enabled="false" ValidationGroup="reserve">
                                 </asp:RequiredFieldValidator>
<asp:Button ID="btnConfirm" runat="server" Text="Confirm" OnClick="btnConfirm_Click" ValidationGroup="reserve"/>
<asp:Button ID="Button2" runat="server" Text="Cancel" CausesValidation="false" OnClick="btnCancel_Click" />

public void DynamicClick(object sender, EventArgs e)
{
UpdatePanel1.Update(); 
mpe.Show();
RequiredFieldValidator2.Enabled = true;
}
    public void btnCancel_Click(object sender, EventArgs e)
    {
        mpe.Hide();
        RequiredFieldValidator2.Enabled = false;
    }

protected void ddlLength_SelectedIndexChanged(object sender, EventArgs e)
    {
        int length = 0, unit = 0;
        if (ddlLength.SelectedIndex != 0)
        {
            length = Convert.ToInt32(ddlLength.SelectedItem.Value);
            unit = length / 60;
        }

        RequiredFieldValidator1.Enabled = true;
        RequiredFieldValidator2.Enabled = true;
        Button2.CausesValidation = false;
    }

Upvotes: 0

Views: 4468

Answers (1)

Rizwan Patel
Rizwan Patel

Reputation: 538

Please put below code on drop down server side change event

modalpopup.show(); updatepanel.update();

where modalpopup is "ID" of modalpopupextender and updatepanel is "ID" of updatepanel

Upvotes: 3

Related Questions