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

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

Я использую комбинацию .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 на этой панели обновлений, он должен обновить вторую панель обновлений на странице. (FYI Панели не вложены)

ПАНЕЛЬ 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 запускается, он обновляет обе панели, а не только вторую панель. Любая помощь, полученная с благодарностью, так как это сводит меня с ума.


person Ben Drury    schedule 29.12.2012    source источник


Ответы (1)


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

JS:

$('#<%=bla.ClientID %>').click();
person rick schott    schedule 03.01.2013