Ajax updateProgress не показывает прогресс для правильного UpdatePannel

У меня есть панель Ajax first panel внутри другой панели second panel и updateProgress связаны с первой панелью

С этим у меня две проблемы:

  • UpdateProgress показывает прогресс изображения при обновлении второй панели, но не при обновлении первой панели
  • Чтобы обновить 2-ю панель, мне нужно дважды нажать кнопку внутри второй панели.

    <asp:UpdateProgress ID="UProc_TabContainer" runat="server" AssociatedUpdatePanelID="UP_FirstPanel"
    DisplayAfter="1">
    <ProgressTemplate>
        <div id="dvProgress" runat="server" style="position: absolute; top: 300px; left: 450px;
            text-align: center;">
            <asp:Image ID="wait" runat="server" ImageUrl="~/Images/wait3.gif" Height="120px"
                Width="128px" />
        </div>
    </ProgressTemplate>
    </asp:UpdateProgress>
    <asp:UpdatePanel ID="UP_FirstPanel" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <script language="javascript" type="text/javascript">
            function divexpandcollapse(divname) {
                var div = document.getElementById(divname);
                var img = document.getElementById('img' + divname);
                if (div.style.display == "none") {
                    div.style.display = "block"; img.src = "Images/Icons/minus.jpg";
                } else { div.style.display = "none"; img.src = "Images/Icons/plus.jpg"; }
            }</script>
        <asp:DropDownList ID="DateSelection" runat="server" AutoPostBack="True" Height="21px"
            Width="134px">
        </asp:DropDownList>
        <asp:GridView ID="GV_SL" runat="server" OnRowDataBound="gvUserInfo_RowDataBound"
            OnRowCommand="GV_SL_RowCommand" AutoGenerateColumns="false" DataSourceID="SQL_Weekly">
            <Columns>
                <asp:TemplateField ItemStyle-Width="50px">
                    <ItemTemplate>
                        <a href="JavaScript:divexpandcollapse('div<%# Eval("name") %>');">
                            <img id="imgdiv<%# Eval("name") %>" width="15px" border="0" src="Images/Icons/plus.jpg" /></a></ItemTemplate>
                    <ItemStyle Width="40px" />
                </asp:TemplateField>
                <asp:BoundField DataField="name" HeaderText="Group" SortExpression="name" />
                <asp:BoundField DataField="ASL" HeaderText="SL% Act" ReadOnly="True" SortExpression="ASL" />
                <asp:TemplateField>
                    <ItemTemplate>
                        <tr>
                            <td colspan="100%">
                                <div id="div<%# Eval("name") %>" style="display: none; position: relative; left: 15px;
                                    overflow: auto">
                                    <asp:GridView ID="gvChildGrid" runat="server" AutoGenerateColumns="false">
                                        <Columns>
                                            <asp:BoundField DataField="Metric" HeaderText=" " HeaderStyle-HorizontalAlign="Left" />
                                            <asp:BoundField DataField="Actual" HeaderText="Actual" HeaderStyle-HorizontalAlign="Left" />
                                        </Columns>
                                    </asp:GridView>
                                    <br />
                                    <asp:UpdatePanel ID="UP_SecondPanel" runat="server" UpdateMode="Always">
                                        <ContentTemplate>
                                            <%--  --%>
                                            <asp:TextBox ID="TB_Comments" runat="server" Text="Example: Text will be entered here"
                                                TextMode="MultiLine" Rows="4" Width="510px"></asp:TextBox>
                                            <asp:Button ID="B_Save" runat="server" CommandName="AddText" CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>"
                                                Text="Save Changes" />
                                        </ContentTemplate>
                                    </asp:UpdatePanel>
                                    <%--  --%>
                                </div>
                            </td>
                        </tr>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="DateSelection" EventName="SelectedIndexChanged" />
    </Triggers>
    

Есть идеи, что я делаю не так?

Спасибо

1 ответ

Я решил 1-ю проблему, представленную, удалив AssociatedUpdatePanelID="UP_FirstPanel" из UpdateProgress. Я надеюсь, что это помогает кому-то

Я создал отдельную публикацию с дополнительными деталями и упрощенным кодом для второй проблемы (для Nested Ajax UpdatePanel в Gridview необходимо дважды щелкнуть элемент управления кнопкой)

Другие вопросы по тегам