Остановите обновление панели обновления при использовании __doPostBack на другой панели обновления

У меня проблема с обновлением панели обновления.NET, когда я этого не хочу.

Я использую комбинацию.NET Ajax и Twitter Bootstrap Javascript. У меня есть две панели обновления на странице (вы заметите, что для обеих панелей ChildrenAsTriggers установлено в false, а UpdateMode - в условный, отсюда тот факт, что я в растерянности!!):

ПАНЕЛЬ 1:

            <asp:UpdatePanel ID="upAreas" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
                <ContentTemplate>
                    <asp:Literal ID="litEmptyAreas" runat="server" Text="You currently have no goals or actions." Visible="false" />
                    <asp:Repeater ID="rptAreas" runat="server" 
                        OnItemDataBound="getAreaGoals" >
                        <ItemTemplate>
                                <div class="accordion-group" id="areagroup">
                                <div class="accordion-heading area-heading">
                                    <a class="accordion-toggle" data-toggle="collapse" href='#collapse-<%# Eval("area_id") %>' >
                                        <div class="areatitle">
                                        <asp:Literal ID="litAreaTitle" runat="server" Text='<%# Eval("area_title") %>' />
                                        <!-- <span class="areacreatedate"><asp:Literal ID="litAreaCreateDate" runat="server" Text='<%# "created " + String.Format("{0:dd MMMM yyyy}", Eval("area_createdate")) %>' /></span>-->
                                        </div>
                                    </a>
                                    <div class="areaicons">
                                        <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-plus-sign icon-white areaiconplus"></i></a>
                                        <!--<a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-file icon-white areaiconlist"></i></a>-->
                                        <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-eye-open icon-white areaiconeye"></i></a>
                                    </div>
                                </div>
                                <div id='collapse-<%# Eval("area_id") %>' class="accordion-body collapse">
                                    <div class="accordion-inner">
                                    <asp:Literal ID="litEmptyGoals" runat="server" Text="You currently have no goals or actions for this life area." Visible="true" />
                                    <asp:Repeater ID="rptGoals" runat="server"
                                        OnItemDataBound="setUpGoals" >
                                        <ItemTemplate>
                                            <div class="theGoals clearfix">      
                                                <span class="goalid"><%# Eval("goal_id") %></span>          
                                                <span class="goaltitle"><asp:Literal ID="theGoal" runat="server" Text='<%# Eval("goal_title") %>' /></span>
                                                <div class="goalicons">
                                                    <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-plus-sign icon-white goal_iconplus"></i></a>
                                                    <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-eye-open icon-white goal_iconeye"></i></a>
                                                </div>
                                                <span class="goalduedate"><asp:Literal ID="theDuedate" runat="server" Text='<%# "<span>Due:</span> " + String.Format("{0:dd MMM yy}", Eval("goal_duedate")) %>' Visible="true" /></span>
                                            </div>                                        
                                        </ItemTemplate>
                                    </asp:Repeater>
                                    </div>
                                </div>
                                </div>                    
                        </ItemTemplate>
                    </asp:Repeater>
                </ContentTemplate>
            </asp:UpdatePanel>

Это заполняется в Page_Load, но может потребоваться обновить позже в случае, если пользователь добавляет новый элемент.

Когда пользователь нажимает на элемент div на этой панели обновлений, он должен обновить дату второй панели обновлений на странице. (К сведению, панели не являются вложенными)

ПАНЕЛЬ 2:

<asp:UpdatePanel ID="upActionlist" runat="server" UpdateMode="Conditional" OnLoad="getActions" ChildrenAsTriggers="false">
                <ContentTemplate>
                    <div class="listheading">
                        <div class="goaltitle">
                            <asp:Literal ID="litGoalTitle" runat="server" Text="Nationally Recognised Consultancy" />
                        </div>
                        <div class="goalicons">
                            <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-plus-sign icon-white goaliconplus"></i></a>
                            <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-eye-open icon-white goaliconeye"></i></a>
                        </div>
                    </div>
                    <div class="listinner">
                        <asp:Literal ID="litEmptyActions" runat="server" Text="You currently have no actions to view." Visible="true" />
                        <asp:Repeater ID="rptActions" runat="server" 
                            OnItemDataBound="setUpActions">
                            <ItemTemplate>
                                <div class="theActions clearfix">
                                    <div class="actiontitle">      
                                        <span class="actionid"><%# Eval("item_id") %></span>          
                                        <asp:Literal ID="theAction" runat="server" Text='<%# Eval("item_title") %>' />
                                    </div>
                                    <div class="actionicons">
                                        <!--<a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-th-list icon-white actioniconlist"></i></a>
                                        <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-file icon-white actioniconnote"></i></a>-->
                                        <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-eye-open icon-white actioniconeye"></i></a>
                                        <a href="#" data-toggle="modal" data-target= "#myModal"><i class="icon-check icon-white actioniconcomplete"></i></a>
                                    </div>
                                    <div class="actiondate">
                                        <span class="actionduedate"><asp:Literal ID="theActionduedate" runat="server" Text='<%# "<span>Due:</span> " + String.Format("{0:dd MMM yy}", Eval("item_duedate")) %>' Visible="true" /></span>
                                    </div>
                                </div>  
                            </ItemTemplate>
                        </asp:Repeater>
                    </div>
                </ContentTemplate>
            </asp:UpdatePanel>

Обновление вызывается с помощью следующего события щелчка javascipt, добавленного в DIV на первой панели обновления в document.ready:

        $('.theGoals').click(function () {
            //remove from all goal other classes
            $('.theGoals').removeClass('active'); // "this" is the current element in the loop

            $(this).addClass('active');

            // Load content
            __doPostBack('<%=upActionlist.ClientID %>', $(this).children('.goaltitle').text() + "|" + $(this).children('.goalid').text());

        });

Когда этот javascript запускается, он обновляет обе панели, а не только вторую панель. Любая помощь с благодарностью получена, так как это сводит меня с ума.

1 ответ

Я обхожу эту проблему, поставив скрытый asp:button на странице и вызывая метод click со стороны клиента для принудительной обратной передачи:

JS:

$('#<%=bla.ClientID %>').click();
Другие вопросы по тегам