嵌套的ajax UpdatePanel不会在回发后清除文本框内容?

时间:2012-04-06 20:47:54

标签: asp.net ajax asp.net-ajax ajaxcontroltoolkit

我有两个UpdatePanel,一个UpdatePanel包含Grid,另一个包含数据条目。当用户单击GridView中的ImageButton时,它将显示给ModalPopupExtender并显示第二个UpdatePanel。当用户将数据输入到第二个UpdatePanel下的字段中时,如果他们单击按钮报告或按钮取消,则表示我正在两个按钮上强制回发。问题是如果用户返回并单击页面上的不同行,则UpdatePanel2下的数据未清除所有数据仍然来自第一行单击...我尝试过UpdatePanel1.Update(),UpdatePanel2.Update( )整页PostBack什么都行不通。唯一有效的是如果我将Response.Redirect回复给自己。但我试图避免这样做,并试图避免使用.cs代码清除字段。想知道是否有办法回发并清除UpdatePanel2下的所有字段。感谢您的帮助。

<asp:UpdatePanel ID="upGrid" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div>
    <span id="lblTab" runat="server" style=" font-weight:bold; font-size:larger">All Published Reports</span>
    <br />      
    <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="Name">                    
                <ItemTemplate>                        
                    <%#Eval("n_Description")%>
                </ItemTemplate>
            </asp:TemplateField>
            </Columns>
    </asp:GridView>                                         
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="Button1" PopupControlID="ReportParameterPanel" BackgroundCssClass="modalBackground" DropShadow="True">
            </asp:ModalPopupExtender>
            <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> 

                <table style="height: 25px; width: 685px; text-align: left">
                    <tr>
                        <td align="left" style="padding-left: 5px; width: 335px;" valign="top">
                            <span id="lblOperator" runat="server">Operator:</span>
                            <asp:DropDownList ID="Parameters" runat="server" style="margin-left: 73px">
                                <asp:ListItem Selected="True"><</asp:ListItem>
                                <asp:ListItem>></asp:ListItem>
                                <asp:ListItem>=</asp:ListItem>
                                <asp:ListItem>Completed</asp:ListItem>
                                <asp:ListItem>Not Completed</asp:ListItem>
                            </asp:DropDownList>
                        </td>
                    </tr>
                </table> 

                <asp:RadioButtonList ID="GroupingList" runat="server" Height="25px" 
                        RepeatDirection="Horizontal" 
                        AutoPostBack="true" onselectedindexchanged="GroupingList_SelectedIndexChanged" 
                         CausesValidation="true" ValidationGroup="vgMyGroup" /> 

                <table style="height: 25px; width: 685px; text-align: left">
                    <tr id="rowEntitySelectionLabels" runat="server">
                        <td style="padding-left: 3px; height: 16px; width: 300px;">
                            <asp:Label ID="GroupItemInputLabel" runat="server" />
                        </td>
                        <td style="height: 16px; width: 48px;">
                        </td>
                        <td style="height: 16px; width: 300px;">
                            <asp:Label ID="GroupItemsListInputLabel" runat="server" />
                        </td>
                    </tr>
                    <tr id="rowEntitySelections" runat="server">
                        <td valign="top" style="padding-left: 3px; height: 100px; width: 300px;">
                            <asp:ListBox ID="GroupItemInput" runat="server" Width="300px" Height="150px" 
                                SelectionMode="multiple" BackColor="White" ForeColor="Black" />
                        </td>
                        <td align="center" valign="top" style="height: 100px; width: 50px;">
                        <br />
                            <asp:ImageButton ID="btnAddItem" 
                                ImageUrl="~/App_Themes/Sugar2006/images/Actions-arrow-right-icon.png" runat="server" 
                                OnClick="btnAddItem_Click" Height="18px" Width="25px" 
                                ToolTip="Adds the Selected <Item>." CausesValidation="true" ValidationGroup="vgMyGroup" /><br />
                            <asp:ImageButton ID="btnAddAllItems"                                     
                                ImageUrl="~/App_Themes/Sugar2006/images/Actions-arrow-right-double-icon.png" runat="server" 
                                OnClick="btnAddAllItems_Click" Height="18px" Width="25px" 
                                ToolTip="Adds all of the <Items>." CausesValidation="true" ValidationGroup="vgMyGroup" /><br />
                            <br /><br />
                            <asp:ImageButton ID="btnRemoveItem" 
                                ImageUrl="~/App_Themes/Sugar2006/images/Actions-arrow-left-icon.png" runat="server" 
                                OnClick="btnRemoveItem_Click" Height="18px" Width="25px" 
                                ToolTip="Removes the Selected <Item>." CausesValidation="true" ValidationGroup="vgMyGroup" /><br />
                            <asp:ImageButton ID="btnRemoveAllItems"                                     
                                ImageUrl="~/App_Themes/Sugar2006/images/Actions-arrow-left-double-icon.png" runat="server" 
                                OnClick="btnRemoveAllItems_Click" Height="18px" Width="25px" 
                                ToolTip="Removes all of the <Items>." CausesValidation="true" ValidationGroup="vgMyGroup" />
                        </td>
                        <td valign="top" style="height: 100px; width: 300px;" id="TD1">
                            <asp:ListBox ID="GroupItemsList" runat="server" Width="300px" Height="150px" 
                                SelectionMode="multiple" BackColor="White" ForeColor="Black" />
                        </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>                                    
        </ContentTemplate>
        <Triggers>
            <asp:PostBackTrigger ControlID="btnSend" />
            <asp:PostBackTrigger ControlID="btnClose" />
        </Triggers>
    </asp:UpdatePanel>
</div>
</ContentTemplate>
</asp:UpdatePanel>

1 个答案:

答案 0 :(得分:0)

尝试将UpdatePanel.UpdateMode属性设置为条件

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <!-- other stuff -->
</asp:UpdatePanel>

如果更新模式未设置为条件,则子更新面板将仅刷新其子项,而不刷新其子项。

以下是更新更新面板的更多方法: http://lisazhou.wordpress.com/2008/01/07/update-panel-different-ways-of-triggering-udates/