想利用Timer定时的执行一些方法。。。下面给出代码:
- HTML code
<asp:ScriptManager ID="ScriptManager1" runat="server" /> <div> <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000"> </asp:Timer> </div><li><a href="#">消息 <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> <ContentTemplate> <asp:Label ID="mesnum" runat="server" ForeColor="#CC0000"></asp:Label> </ContentTemplate> </asp:UpdatePanel> </a></li>
- C# code
protected void Timer1_Tick(object sender, EventArgs e) { string userid = Session["UserId"].ToString(); DataTable dt = new MessagesDAO().mescheck(new ModelMessages(userid)); mesnum.Text = dt.Rows.Count.ToString(); Timer1.Enabled = true; }
就是我想定时的刷新并且获取消息条数。。。为什么总是没有值呢。。。如果我直接在Timer1_Tick方法里面这样赋值:
mesnum.Text = "1";就会定时的刷新。。。如果像上面的代码那样绑定的话它就不刷新了。。这是怎么回事呢?
------解决方案--------------------------------------------------------
if(Session["UserId"]==null)
{
mesnum.Text = "Session为null";
}
else
{
string userid = Session["UserId"].ToString();
DataTable dt = new MessagesDAO().mescheck(new ModelMessages(userid));
mesnum.Text = dt.Rows.Count.ToString();
}
Timer1.Enabled = true;