zoukankan      html  css  js  c++  java
  • ASP.net在网页上显示当前时间,利用AJAX不刷新网页

    前台页面代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
                    </asp:Timer>
                    <asp:Label ID="lblTime" runat="server" Text=""></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
        </form>
    </body>
    </html>

    后台CS代码:

    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Globalization;
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        /// <summary>
        /// 事件发生改变
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            //第一种方法获取星期几
            //string[] str1 = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };
            //string str2 = DateTime.Now.ToString("tt") == "上午" ? "AM" : "PM";
            //lblTime.Text = "当前时间为:" + DateTime.Now.ToString("yyyy年MM月dd日") + "&nbsp;&nbsp;&nbsp;" +
            //    str1[Convert.ToInt32(DateTime.Now.DayOfWeek)] + "&nbsp;&nbsp;&nbsp;" + DateTime.Now.ToLongTimeString()+;
            //第二种方法获取星期几
            string str = DateTime.Now.ToString("tt") == "上午" ? "AM" : "PM";
            lblTime.Text = "当前时间为:" + DateTime.Now.ToString("yyyy年MM月dd日") + "&nbsp;&nbsp;&nbsp;" +
                 CultureInfo.GetCultureInfo("zh-cn").DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek) + "&nbsp;&nbsp;&nbsp;" +
                 DateTime.Now.ToLongTimeString() + "&nbsp;&nbsp;&nbsp;" + str;
        }
    }

    相关知识:
        ·UpdatePanel内放置需要被刷新的控件,如果是其内部控件事件导致其刷新,则不用另外做什么设置,因为UpdatePanel默认ChildrenAsTriggers="true"。
        ·如果是UpdatePanel外部控件导致其刷新的话,则应设置 Triggers。
        ·在Triggers内,如果AsyncPostBackTrigger未设置EventName,则为其指定控件的默认事件。
        ·UpdatePanel默认UpdateMode="Always",需要的话应设置UpdateMode="Conditional"。
        ·RenderMode="Block"对应div;RenderMode="Inline"对应span

    举例:定时器控件Timer2在UpdatePannel外面,则设置如下,见黄色部分:

    <asp:scriptmanager ID="Scriptmanager1" runat="server"></asp:scriptmanager>
    <asp:updatepanel ID="Updatepanel1"  runat="server">
        <ContentTemplate>
            <asp:Timer ID="Timer1" Interval="1000" runat="server" ontick="Timer1_Tick" >
            </asp:Timer>
            <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
            <p></p>
            <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        </ContentTemplate>
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer2" EventName="Tick"  />
        </Triggers>
    </asp:updatepanel>
        </div>
        <asp:Timer ID="Timer2" runat="server" Interval="3000" ontick="Timer2_Tick">
        </asp:Timer>

    推荐阅读:

     
    这是用JS实现的。
  • 相关阅读:
    详解Net Core Web Api项目与在NginX下发布
    一个C#开发者重温Java的心路历程
    C#使用Consul集群进行服务注册与发现
    让我们一起揭开算法的神秘面纱
    C#调用RabbitMQ实现消息队列
    C#调用OpenCV开发简易版美图工具
    我们是如何做go语言系统测试覆盖率收集的?
    高效测试框架推荐之Ginkgo
    性能测试必知必会
    如何保障Go语言基础代码质量?
  • 原文地址:https://www.cnblogs.com/hfzsjz/p/3230368.html
Copyright © 2011-2022 走看看