为什么我的MasterPage UpdatePanel调用ContentPage上的Page_Load?

时间:2018-08-30 17:42:46

标签: asp.net vb.net updatepanel master-pages

我的母版页中的代码每5秒在内容页面上引起一次完全page_load的加载。可悲的是,这意味着它正在破坏我的某些内容页面以及它们的编程方式。我希望单独的UpdatePanel将只允许更新该区域,而不刷新内容页面上的其他UpdatePanel和资源。

我试图将计时器移出UpdatePanel,将UpdatePanel更改为UpdateMode =“ Conditional”,甚至使用第三方AjaxPanel(Telerik)。

所有结果相同,内容页面每5秒钟重新加载一次,清除标题模板(如下所示),有时会破坏网站上的某些功能。

直到我能找到一种方法,仅进行字面量更新而无需重新加载其他资源,我必须使Timer保持禁用状态。

如果需要,我很乐意发布更多代码,但我不想提供可能没有任何重要性的信息。

MasterPage-Site.Master

<title><%: Page.Title %> - My ASP.Net Site</title>

<asp:UpdatePanel ID="UpdatePanelMenu" runat="server">
    <ContentTemplate>
        <span>Tickets<asp:Literal ID="LiteralUnassignedTickets" runat="server"></asp:Literal></span>
        <asp:Timer ID="TimerAutoRefreshMenu" runat="server" Interval="5000" Enabled="true"></asp:Timer>
    </ContentTemplate>
</asp:UpdatePanel>

1 个答案:

答案 0 :(得分:0)

如果必须使用更新面板,则使更新面板的更新成为条件更新,并将计时器设置为异步触发器(非常重要)。 当更新面板位于母版页上时,甚至当它们位于内容页面上时,更糟糕的是
对于最小的更改,更好的选择是将setTimeout设置为执行ajax调用以更新未分配票证数量的函数。您可以将其扩展为使用json对象更新一堆字段/元素。另外,如果您转向MVC,则这些技术可能非常有用。