我可以在主页中的Ajax updatePanel中放置一个Timer吗?

时间:2011-02-25 17:15:20

标签: asp.net ajax ajaxcontroltoolkit

我做了一个非常简单的面板更新,它将查询数据库并通过标签在主页上显示消息。

因此,我在我的网站的母版页中放了一个带有标签和计时器的updatePannel(显然是用scriptManager)。

但是,当我尝试与timer1对象进行交互时,收到错误消息:“object not set to an instance of an object”。将架构放在空白页面(没有母版页)时,我没有收到此消息。

我必须在母版页中运行查询,因为用户需要接收我站点中的信息。

如何正确放置组件来完成这项工作?我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

我只是在母版页中尝试了它而没有任何问题。以下是相关代码:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
<asp:UpdatePanel ID="updMessage" runat="server">
<ContentTemplate>
    <asp:Label ID="lblMessage" runat="server" />
    <asp:Timer ID="tmrMessage" Interval="5000" ontick="tmrMessage_Tick" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>

从母版页代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Session["Message"] = 1;
    }
}

protected void tmrMessage_Tick(object sender, EventArgs e)
{
    int message = (int)Session["Message"];
    lblMessage.Text = message.ToString();
    Session["Message"] = ++message;
}

答案 1 :(得分:0)

问题出在我放置面板,标签和计时器的地方。我放入了contentPlaceHolder,问题出现了。现在我将控件放在form标签中,然后问题就解决了。