母版页使用问题(显示系统时间 js)

    在使用母版页的时候,发现源文件控件元素的ID和生成HTML文件的ID不一致。表单from的name属性和id属性变成了aspnetForm,控件的id属性被无缘无故了加上了ctl00_ContentPlaceHolder1_前缀,其name属性也加上了ctl00$ContentPlaceHolder1$前缀,在使用javascript的时候就无法正确获得ID值进行下一步操作,如何解决这个问题呢?下面介绍在母版页显示系统时间为例进行说明。步骤如下:

  1. //javascript获得系统时间代码

<script   language="javascript">  
  function   show()  
  {  
       var   t;  
      //获得系统当前时间  
      t=new   Date();  
      var   s;  
      //获得时  
      s=t.getHours()+":";  
      //获得分  
      s+=t.getMinutes()<10?"0"+t.getMinutes():t.getMinutes();  
      s+=":";  
      s+=t.getSeconds()<10?"0"+t.getSeconds():t.getSeconds();  
      document.getElementById('<%= Label1.ClientID %>').innerText=s;

    setTimeout("show()",500)      
  }  
  </script>

2. 在母版页的body里面修改如下,使其载入时发生:

<body οnlοad="show()">

//为System.Web.UI.WebControls.TextBox   服务器端控件

<asp:Label ID="Label1"     runat="server"></asp:Label>

备注:document.getElementById('<%= Label1.ClientID %>').innerText=s;为技术关键点,为获得客户端的id,就需要用Label1.ClientID

由于种种原因(比如使用了MasterPage,或者GridView中的模版列),一个控件在设计时的ID往往不同于生成页面后的ID,为了获得控件客户端ID,我们可以从生成的页面入手,取控件id有以下三种修改方法:

   document.getElementById("ctl00$编辑区ID$控件ID");
document.getElementById("ctl00_编辑区ID_控件ID");
document.getElementById("<%= 编辑区ID_控件ID.ClientID %>");

【上面前两个方法的“ct100”都是客户端生成的代码,我们只要改变原来的值就可以了,比如本例js代码可以改成这样:document.getElementById('ctl00_Label1').innerText=s;同样可以实现】

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值