Reputation: 2504
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
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