2012-04-10 5 views
1

Ich habe eine GridView mit Hyperlinks und auf dem Hyperlink klicken Sie auf einen Modal Popup Extender erscheint. Es gibt Textfelder, die basierend auf der Zeile in der GridView angezeigt oder ausgeblendet werden. Mein Problem ist, wenn die Modal Popup Fires und Benutzer die Texboxen ausfüllen und sagen, sie klicken auf "Schließen" und ich verstecke den Modal Popup Extender, wenn sie auf eine andere GridView Zeile klicken oder die vorherigen Daten erscheinen. Scheint so, als ob der Modal Popup Extender Controls nicht darunter löscht. Ich habe versucht, mein UpdatePanel auf conditional zu setzen und das Update zu erzwingen, das nicht funktionierte. Bitte helfen Sie mir, ich habe versucht, dies seit ein paar Tagen herauszufinden, und es wird wirklich nervig. Danke für Ihre Hilfe.Klare Steuerelemente In Modalpopupxtender

<asp:UpdatePanel ID="upGrid" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
<div>  
      <asp:GridView 
        ID="gvReports" 
        runat="server" 
        CssClass="gridview" 
        RowStyle-CssClass="gridview_itm" 
        AlternatingRowStyle-CssClass="gridview_aitm" 
        HeaderStyle-CssClass="gridview_hdr" 
        PagerStyle-CssClass="gridview_pgr" 
        AutoGenerateColumns="False" 
        Width="100%" onrowcommand="gvReports_RowCommand">     
        <Columns> 
        <asp:TemplateField HeaderText="Name">      
         <ItemTemplate>       
          <asp:LinkButton ID="btnReport" runat="server" CommandName="Report" CommandArgument='<%#Eval("n_ReportFileName")%>' Text='<%#Eval("n_Name")%>' CausesValidation="false"></asp:LinkButton> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Description">      
         <ItemTemplate>       
          <%#Eval("n_Description")%> 
         </ItemTemplate> 
        </asp:TemplateField> 
        </Columns> 
      </asp:GridView> 
      <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="Button1" PopupControlID="ReportParameterPanel" BackgroundCssClass="modalBackground" DropShadow="True" />     
      <asp:Button ID="Button1" runat="server" Text="Button" style="visibility:hidden"/> 
      <asp:Panel ID="ReportParameterPanel" runat="server" Height="375px"      
       Width="700px" BackColor="#f4de90" 
       HorizontalAlign="Center" BorderColor="#666666" BorderStyle="Outset" 
       BorderWidth="5px"> 
       <table style="height: 50px; width: 685px; text-align: left"> 
        <span id="lblReportName" runat="server" style="font-weight:bold; font-size:larger"></span> 
        <tr> 
         <td align="left" style="padding-left: 5px; width: 335px;" valign="top"> 
          <span id="StarDateStar" runat="server" style="color: Red">*Optional&nbsp;</span><span id="lblStartDate" runat="server">Start Date: </span> 
          <asp:TextBox ID="tbStartDate" runat="server"></asp:TextBox> 
          <asp:ImageButton ID="imgCalendar" runat="server" ImageUrl="~/App_Themes/Sugar2006/images/Calendar_scheduleHS.png" ImageAlign="Middle" /> 
          <asp:CalendarExtender ID="ceStartDate" runat="server" TargetControlID ="tbStartDate" PopupButtonID="imgCalendar" />   
          <asp:MaskedEditExtender ID="mexStartDate" runat="server" 
           TargetControlID="tbStartDate" 
           Mask="99/99/9999" 
           MaskType="Date" 
           MessageValidatorTip="true" 
           OnFocusCssClass="MaskedEditFocus" 
           OnInvalidCssClass="MaskedEditError" /> 
           <br /> 
          <asp:MaskedEditValidator ID="mevStartDate" runat="server" 
           ControlToValidate="tbStartDate" 
           ControlExtender="mexStartDate" 
           Display="Dynamic" 
           InvalidValueMessage="This date is invalid!" Font-Bold="True" 
           ForeColor="#D50000" ValidationGroup="vgMyGroup" /> 
         </td> 
         <td align="left" style="padding-right: 5px; padding-bottom: 5px; width: 350px;" valign="top"> 
          <span id="EndDateStar" runat="server" style="color: Red">*Optional&nbsp;</span><span id="lblEndDate" runat="server">End Date: </span> 
          <asp:TextBox ID="tbEndDate" runat="server"></asp:TextBox> 
          <asp:ImageButton ID="imgCalendar2" runat="server" ImageUrl="~/App_Themes/Sugar2006/images/Calendar_scheduleHS.png" ImageAlign="Middle" /> 
          <asp:CalendarExtender ID="ceEndDate" runat="server" TargetControlID ="tbEndDate" PopupButtonID="imgCalendar2" />   
          <asp:MaskedEditExtender ID="mexEndDate" runat="server" 
           TargetControlID="tbEndDate" 
           Mask="99/99/9999" 
           MaskType="Date" 
           MessageValidatorTip="true" 
           OnFocusCssClass="MaskedEditFocus" 
           OnInvalidCssClass="MaskedEditError" /> 
           <br /> 
          <asp:MaskedEditValidator ID="mevEndDate" runat="server" 
           ControlToValidate="tbEndDate" 
           ControlExtender="mexEndDate" 
           Display="Dynamic" 
           InvalidValueMessage="This date is invalid!" Font-Bold="True" 
           ForeColor="#D50000" 
           ValidationGroup="vgMyGroup" /> 
         </td> 
        </tr> 
       </table>                 
       <asp:Button ID="btnClose" runat="server" Text="Close" CssClass="btn" onclick="btnClose_Click" CausesValidation="false" /> 
       <asp:Button ID="btnSend" runat="server" Text="Report" CssClass="btn" OnClick="btnSend_Click" Enabled="false" CausesValidation="true" ValidationGroup="vgMyGroup" />      
      </asp:Panel> 
       </div> 
</ContentTemplate> 
<Triggers> 
    <asp:PostBackTrigger ControlID="btnSend" /> 
</Triggers> 
</asp:UpdatePanel> 

Antwort

0

versuchen ModalPopupExtender von Code-Behind-Aufruf:

ModalPopupExtender1.Show(); 
+0

Das ist, was ich verwende aus dem Code hinter und versteckt es auch hinter dem Code, aber es funktioniert nicht. –

+0

Ich habe den obigen Code eingegeben. –

+0

versuchen Sie, ModalPopup in updatepanel (untergeordnet) zu halten und aktualisieren/aktualisieren Sie das vor dem Aufruf von ModalPopupExtender1.Show(); –

0

Verwenden Linkbuttons statt und auf Klicken Sie auf die Steuerelemente im Modalpopup löschen, und dann rufen ModalPopup.Show()

+0

+0

So initialisiere ich den ModalPopupExtender und dann rufe ich ModalPopupExtender1.show() aus dem Code heraus und ich verstecke es auch vor dem Code dahinter aber trotzdem behält die vorherigen Werte bei. –

+0

Ich habe den obigen Code eingegeben. –