当在另一个更新面板上使用__doPostBack时,停止更新
Stop updatepanel updating when using __doPostBack on another updatepanel
我有一个问题,当我不希望它更新。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时,它应该更新页面上的第二个更新面板。(供参考,面板不是嵌套的)
PANEL 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>
使用以下javascript click事件调用更新,该事件添加到document.ready中的第一个更新面板中的DIV中:
$('.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运行时,它会更新两个面板,而不仅仅是第二个面板。非常感谢您的帮助,因为这已经让我发疯了。
我通过在页面上放置一个隐藏的asp:button
并从客户端调用它的click方法来强制正确的回发来解决这个问题:
JS:
$('#<%=bla.ClientID %>').click();
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 标记的实时更新,无需加载页面谷歌地图API V3
- 使用mongodb更新中的一个变量
- 访问jsrender模板中的全局javascript变量并更新它
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段