A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘-洋 中级黑马   /  2012-11-13 15:08  /  1809 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

写网站的时候,想在首页放置个lable用于显示当前的时间,刷新一次时间才更新一次,有什么方法能实现不刷新页面,刷新时间么?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 刘-洋 于 2012-11-13 15:27 编辑

额 自己解决了,用ScriptManager和UpdatePanel控件加上timer控件 timer控件负责按时间执行lable文本的更新,ScriptManager和UpdatePanel控件负责局部刷新
回复 使用道具 举报
setInterval("time.innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());", 1000);

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我这里用javascript来操作ajax来实现的,希望楼主看看
1、ajaxTime.aspx文件


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxTime.aspx.cs" Inherits="test11.ajaxTime" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        //根据不同的浏览器使用相应的方式来创建异步对象
        //返回创建好的异步对象
        function createXmlHttp() {
            var xhobj = false;
            try {
                xhobj = new ActiveXObject("Msxml2.XMLHTTP"); //IE6.0+
            } catch (e) {
                try {
                    xhobj = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e2) {
                    xhobj = false;
                }
            }

            //谷歌,FireFox,Opera 8.0+,safari
            if (!xhobj && typeof (XMLHttpRequest) != 'undefined') {
                xhobj = new XMLHttpRequest();
            }

            return xhobj;
        }

        //ajax请求,获得服务器数据
        function getData() {
            var xhr;
            //1.创建异步对象
            xhr = createXmlHttp();
            //2.设置请求参数
            xhr.open("post", "ajaxTime.aspx", true);
            //3.设置post的请求报文体数据格式(像此格式:name=jim&&age=18)
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            //4.设置回调函数,用来检查服务器是否将数据发送回给异步对象
            //异步对象的readystate属性发生改变时,就会回调方法来检查当前状态,执行用户定义的代码
            xhr.onreadystatechange = function () {
                //服务器已将数据发回到浏览器的异步对象
                if (xhr.readyState == 4) {
                    ////如果返回的响应报文状态吗为200,才代表服务器运行正确
                    if (xhr.status == 200) {
                        //将xhr.responseText转成json对象时,必须在左右加上括号
                        var timeJson = eval("(" + xhr.responseText + ")");
                        var text = document.getElementById("<%=LbTime.ClientID %>");
                        //取出服务器返回Json数据中的时间,并将其赋给Label控件
                        text.innerHTML = timeJson.time;
                    }
                }
            }
            //5.异步对象发送请求
            xhr.send("start=1");
        }

        //当页面加载完成后发送数据
        window.onload = function () {
            //getData();
            setInterval("getData()", 1000);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <asp:Label ID="LbTime" runat="server" Text="Label"></asp:Label>

    </div>
    </form>
</body>
</html>

2、ajaxTime.aspx.cs文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace test11
{
    public partial class ajaxTime : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string start = Request.Form["start"];
            if (!string.IsNullOrEmpty(start))
            {
                string timeStr = DateTime.Now.ToLocalTime().ToString();
                //将当前服务器的事件已JSON格式发回浏览器
                Response.Write("{'time':'" + timeStr + "'}");
                //结束运行,不呈现控件
                Response.End();
            }
            else
            {
                LbTime.Text = DateTime.Now.ToLocalTime().ToString();
            }
        }
    }
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
可以使用timer控件 .timer控件的Interval属性设置更新时间间隔(1000即为1秒)。
Protected void Timer1_Tick(object sender.EventArgs e)
{
         label1.text=dateTime.now.toString();
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马