2012-02-26 20 views
0

私は2つのupdatepanelsを持っています。最初のものがモーダルポップアップを開くためのリンクボタンに付属していましたので、ポップアップする前にそれらのバリデーターをfalseにする必要があります。第2の更新パネルがパネルと共に来て、それらのボタンのキャンセルとボタンの確認。自動ポストバックの前に、すべて正常に動作します。しかし、私はなぜ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" であります
関連する問題