当我将Timer与updatePanal一起使用时,类会发生冲突

时间:2016-08-10 20:12:41

标签: asp.net asp.net-ajax updatepanel

我正在尝试使用updatePanal构建asp.net应用程序作为此代码:

      <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
                    <asp:Timer runat="server" id="Timer1" Interval="10000" OnTick="Timer1_Tick"></asp:Timer>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
     <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
            </Triggers>
    <ContentTemplate>

            <div class="col-xs-6 col-md-3">
                <div class="panel panel-default">
                    <div class="panel-body easypiechart-panel">
                        <h4>Humidity </h4>
                        <div   class="easypiechart" id="easypiechart-blue" data-percent="4" ><span class="percent">92%</span>
                        </div>
                                                                            <button class="btn btn-primary">Adjust Humidity</button><br /><br /><br />

                    </div>
                </div>
            </div>
        </ContentTemplate>
            </asp:UpdatePanel>

在更新之前,这是我的div! :

enter image description here

更新后的

变为:

enter image description here

为什么会这样?

1 个答案:

答案 0 :(得分:0)

当计时器打勾时,您可能必须再次调用构建easypiechart的javascript函数。

protected void Timer1_Tick(object sender, EventArgs e) 
{
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "buildPie", "YourBuildPieFunction();", true);
}

<强>更新

首先,您的代码不完整。在您在评论中发布的javascript中,您有document.getElementById('percentH').innerText = percentage + "%";行。但“百分比H”不存在。 <span>元素必须具有该ID <span id="percentH" class="percent">92%</span>

其次,该代码不构建饼图。如果你使用https://rendro.github.io/easy-pie-chart/或类似的东西,在页面的某个地方应该有这样的东西:

$(function() {
    $('.easypiechart').easyPieChart({
        //your configuration goes here
    });
});

这是需要由ScriptManager调用的javascript代码的一部分。