1

ハイパーリンクを含む GridView があり、ハイパーリンクをクリックすると、モーダル ポップアップ エクステンダーがポップアップします。GridView のどの行がクリックされたかに基づいて表示または非表示になるテキスト ボックスがあります。私の問題は、モーダル ポップアップが発生し、ユーザーがテキストボックスに入力して、閉じるをクリックすると、別の GridView 行または前のデータが表示される同じ行をクリックすると、モーダル ポップアップ エクステンダーが非表示になることです。Modal Popup Extender がその下のコントロールをクリアしないようです。UpdatePanel を条件付きに設定し、更新を強制しようとしましたが、機能しませんでした。数日間これを理解しようとしていて、本当に面倒になっています。助けてください。ご協力いただきありがとうございます。

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

2 に答える 2

0

codebehind から modalpopupextender を呼び出してみてください:

ModalPopupExtender1.Show();
于 2012-04-10T14:13:14.623 に答える
0

代わりに LinkBut​​tons を使用し、クリック時に modalpopup のコントロールをクリアしてから、ModalPopup.Show() を呼び出します。

于 2012-04-10T14:19:38.837 に答える