2012-04-10 3 views
1

У меня есть GridView с гиперссылками, а на гиперссылке нажмите Modal Popup Extender. Существуют текстовые поля, которые отображаются или скрыты, в зависимости от того, какая строка на GridView была нажата. Моя проблема в том, что Modal Popup Fires и пользователи заполняют текс-боксы и говорят, что они закрываются, и я скрываю Modal Popup Extender, когда они нажимают на другую строку GridView или ту же, что и предыдущие данные. Похоже, что Modal Popup Extender не очищает Controls под ним. Я попытался установить мою UpdatePanel на условное и принудительное обновление, которое не сработало. Пожалуйста, помогите, я пытаюсь понять это на пару дней, и это становится очень раздражающим. Спасибо за вашу помощь.Очистить элементы управления В modalpopupextender

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

ответ

0

попробуйте позвонить modalpopupextender из коде:

ModalPopupExtender1.Show(); 
+0

Это то, что я использую от кода позади, а также скрывает его от кода, но он не работает. –

+0

Я разместил код выше. –

+0

попробуйте сохранить ModalPopup внутри updatepanel (child) и обновить/обновить его до вызова ModalPopupExtender1.Show(); –

0

Используйте LinkButtons вместо и нажмите очистить элементы управления в modalpopup, а затем вызвать ModalPopup.Show()

+0

+0

Вот как я инициализирую ModalPopupExtender, а затем я вызываю ModalPopupExtender1.show() из кода позади, и я также скрываю его от кода, но он все еще сохраняет предыдущие значения. –

+0

Я разместил код выше. –