在执行计时器滴答功能时避免回发

时间:2012-01-30 11:21:30

标签: asp.net timer adrotator

我需要在我的网站上更新图像而不在页面中回发。所以,我在ad-rotator中加载图像以在图像之间切换。

我还使用了计时器刻度功能来刷新广告旋转器中的图像。

但是当计时器滴答功能刷新时,刷新整个页面,以便重新加载我在页面中声明的所有函数。

我只需要在广告旋转器图像中的图像不应该刷新整个页面。

我需要避免整个页面刷新。 请帮助我。

$(document).ready(function() {
    setInterval(function() {
        $('#<% = addrotat.ClientID %>').load(location.href + ' #<% = addrotat.ClientID %> ', '' + Math.random() + '');
    }, 5000);
});

2 个答案:

答案 0 :(得分:4)

您需要使用ajax,通过使用具有适当触发器的更新面板,更新面板使页面的各个部分在没有回发的情况下部分呈现。

<asp:UpdatePanel ID="up1" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="yourControl" EventName="yourControlEvent" />
        </Triggers>
        <ContentTemplate> your  content goes here       </ContentTemplate>

    </asp:UpdatePanel>    

您可以查看此链接

update panel, with Triggers

Updatepanel documentation

example for adrotator without refreshing the page

答案 1 :(得分:2)

//auto refresh clock without postback

<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <script type="text/vbscript" runat ="server" >
                Private Sub fun()
                    label.Text = Now.ToString
                End Sub
            </script>
        </asp:ScriptManager>
        <div>
            <asp:UpdatePanel ID="up1" runat="server">
                <ContentTemplate ></ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="tim" EventName="Tick" />
                </Triggers>
                <ContentTemplate>  
                    <asp:Timer ID="tim" Interval ="1000" Enabled ="true " OnTick ="fun" runat ="server" ></asp:Timer>
                    <asp:Label ID="label" runat ="server" Text="DD/MM/YY"></asp:Label>     
                </ContentTemplate>
            </asp:UpdatePanel>  
        </div>
    </form>
</body>