2012-02-26 3 views
0

두 개의 updatepanels가 있고 첫 번째 버튼이 모달 팝업을 열기 위해 링크 버튼과 함께 표시되면 해당 유효성 검사기를 false로 설정해야 팝업이 나타납니다. 두번째 updatepanel이 패널과 함께 왔고 버튼 취소와 버튼 확인. autopostback 전에 모든 것이 제대로 작동합니다. 하지만 autopostback 후 취소 버튼을 클릭해도 더 이상 모달 팝업이 닫히고 확인 버튼이 더 이상 작동하지 않는 이유가 궁금합니다.autopostback 후 ModalPopupExtender가 제대로 작동하지 않습니다.

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

답변

3

는 서버 측 변경 이벤트 드롭 다운에서 코드 아래에 넣어주세요 modalpopup이 modalpopupextender 및 updatepanel의 "ID"입니다

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

는 updatepanel

의 "ID"입니다
관련 문제