为什么我的asp.net updatePanel计时器会刷新整个页面?

为什么我的asp.net updatePanel计时器会刷新整个页面?,asp.net,ajax,timer,refresh,updatepanel,Asp.net,Ajax,Timer,Refresh,Updatepanel,我有一个页面,根据预加载和加载方法中的一组检查显示特定控件 我有一个更新面板,其中应显示文件写入时的内容。我通过在updatepanel中设置一个计时器和一个文本框来实现这一点。计划是在计时器的每个刻度上用文件内容更新文本框 现在据我所知;我应该能够只更新updatepanel中的文本框而不刷新整个页面,但我看到我的页面加载被点击,为什么 我的代码 <asp:UpdatePanel ID="updatePnlStatusScreen" runat="server"

我有一个页面,根据预加载和加载方法中的一组检查显示特定控件

我有一个更新面板,其中应显示文件写入时的内容。我通过在updatepanel中设置一个计时器和一个文本框来实现这一点。计划是在计时器的每个刻度上用文件内容更新文本框

现在据我所知;我应该能够只更新updatepanel中的文本框而不刷新整个页面,但我看到我的页面加载被点击,为什么

我的代码

            <asp:UpdatePanel ID="updatePnlStatusScreen" runat="server" Visible="False">
                <ContentTemplate>
                    <asp:Timer ID="timerLogFileOutput" runat="server" Enabled="False" Interval="5000" ontick="timerLogOutput_Tick">
                    </asp:Timer>
                    <asp:TextBox ID="tbLogOutputScreen" runat="server" Height="50%" Width="100%">Nothing logged yet...</asp:TextBox>
                </ContentTemplate>
            </asp:UpdatePanel>

更新面板将激活回发和整个页面生命周期页面加载以及所有内容,区别仅在于渲染-更新面板将只导致部分渲染。您应该将不希望在回发时运行的代码包装在if IsPostBack==false{..}中。

您需要将childrenastriggers设置为false,updatemode=conditional

<asp:UpdatePanel ID="updatePnlStatusScreen" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional" style="display:none">
            <ContentTemplate>
                <asp:Timer ID="timerLogFileOutput" runat="server" Enabled="False" Interval="5000" ontick="timerLogOutput_Tick">
                </asp:Timer>
                <asp:TextBox ID="tbLogOutputScreen" runat="server" Height="50%" Width="100%">Nothing logged yet...</asp:TextBox>
            </ContentTemplate>
        </asp:UpdatePanel>