我有一个应用程序,其中javascript读取设备的GPS位置并将其发送到服务器端脚本,如下所示:
f()
{
var initialLocation= Someshit();
document.getElementById('<% = text.ClientID %>').value=initialLocation;
var button = document.getElementById('<% = Button4.ClientID %>');
button.click();
}
我有一些AJAX.NET代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button4" runat="server" Text="PlaceHolder" onclick="Button4_Click"/>
<asp:TextBox ID="text" runat="server"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
进一步下来
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div>
<some divs and asp:gridviews and god knows what >
</div>
<ContentTemplate>
</asp:UpdatePanel>
问题是当UpdatePanel1的事件结束时,最后一个div内部内容会发生变化。这是为什么?我不想在UpdatePanel1正在执行其操作时更改UpdatePanel1之外的内容。请帮忙。
答案 0 :(得分:1)
默认UpdateMode
为Always
,在这种情况下您需要Conditional
,如下所示:
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div>
Yadda yadda
</div>
<ContentTemplate>
</asp:UpdatePanel>
From MSDN,区别在于:
始终 - 针对源自该页面的所有回发更新UpdatePanel控件的内容。这包括异步回发。
条件 - UpdatePanel控件的内容在以下条件下更新:
Update
方法。ChildrenAsTriggers
property设置为true,则UpdatePanel控件的子控件会导致回发。在此方案中,UpdatePanel控件的子控件是用于更新面板的隐式触发器。嵌套的UpdatePanel控件的子控件不会导致更新外部UpdatePanel控件,除非它们被明确定义为触发器。