ASP.NET/C#实现内容页自动显示客户端时间(无点击事件)
客户端时间自动填充到txt2的分步实现
我来帮你搞定这个问题~你的原代码存在语法错误、未自动触发执行,且时间格式不符合需求,下面是详细的实操指南:
一、核心问题分析
你的代码有三个关键问题:
- 函数定义语法错误:
(function $ { ... });写法不对,无法被浏览器正确解析 - 未自动执行:只是定义了函数,但没有触发它在页面加载时运行
- 时间格式不符:
toUTCString()返回的是完整UTC时间串,不是你要的dd MMM格式
二、完整实现步骤
步骤1:在内容页添加脚本(推荐位置)
打开你的内容页,找到对应母版页holder1的<asp:Content>控件,在其中添加以下代码:
注意:如果你的项目已经引入过jQuery,就删掉第一个引入jQuery的
<script>标签,避免重复加载
<!-- 引入jQuery(如果项目没引入的话) --> <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script> // 页面加载完成后自动执行 $(document).ready(function() { // 获取当前客户端本地日期 const currentDate = new Date(); // 定义英文月份缩写数组 const monthAbbrs = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; // 拼接成 dd MMM 格式(比如31 May) const formattedDate = `${currentDate.getDate()} ${monthAbbrs[currentDate.getMonth()]}`; // 找到txt2的客户端真实ID并赋值(ASP.NET服务器控件会生成动态ID) $("#<%= txt2.ClientID %>").val(formattedDate); }); </script>
步骤2:确认txt2的服务器控件定义
确保你的内容页中txt2是ASP.NET服务器控件,代码如下:
<asp:TextBox ID="txt2" runat="server"></asp:TextBox>
这里的
runat="server"很重要,不然无法通过<%= txt2.ClientID %>获取客户端真实ID
步骤3:测试运行
启动项目加载内容页,txt2会自动填充当前客户端的日期,格式完全符合你的要求~
三、无jQuery的备选方案
如果你的项目不想依赖jQuery,用原生JavaScript也能实现,代码替换成这样即可:
<script> // 页面加载完成后执行 window.addEventListener('load', function() { const currentDate = new Date(); const monthAbbrs = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; const formattedDate = `${currentDate.getDate()} ${monthAbbrs[currentDate.getMonth()]}`; // 找到txt2并赋值 document.getElementById('<%= txt2.ClientID %>').value = formattedDate; }); </script>
内容的提问来源于stack exchange,提问作者yathu
相关产品推荐
相关产品推荐

