asp.net控制DIV,javascript

1.显示隐藏DIV
   ,把DIV声明到服务器端  
  <div id="divDate" name="divDate" runat="server">
        <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
    </div>  
  然后,到后台   divDate.Visible = false;
即可。
或是:
  this.divDate.Style.Add("display",   "none");

2.关于javascript
   调用:<script language="javascript" src="../Js/a.js"></script>
   编码问题:

Web.config文件中
    <globalization
            requestEncoding=" utf-8"
            responseEncoding=" utf-8"
改成 GB2312就搞定了,如果把js文件保存成utf8格式也可以。

this.Response.Write ("<script language=/"javascript/">/rbtclick();/r</script>");
   
  html>
  <script language="javascript">
  function btclick()
  {
  document.all.div1.style.display="none";
  document.all.div2.style.display="inline";
  }
  </script>
  <body>
  <div id=div1>fdfdfd</div>
  <div id=div2>fdfdddddddddfd</div>
  </body>
  </html>
   
  提示:缺少对象
   
  但
  <html>
  <script language="javascript">
  function btclick()
  {
  document.all.div1.style.display="none";
  document.all.div2.style.display="inline";
  }
  </script>
  <body>
  <INPUT type="button" value="Button" onclick ="btclick()">
  <div id=div1>fdfdfd</div>
  <div id=div2>fdfdddddddddfd</div>
  </body>
  </html>
  就可以。。大家都是一样调用btclick()为什么后台不行

hh


那是因为脚本执行的顺序问题,执行的时候对象还没有加载
   
  this.Response.Write ("<script language=/"javascript/">window.onload=rbtclick</script>");
  

hh

或者使用Page.RegisterStartupScript("script","<script>rbtclick();</script>")来输出脚本Top
function btclick()
  {
  document.getElementById('div1').style.display="none";
  document.getElementById('div2').style.display="inline";
  }

hh

Response.Write是输出在页面的最前面,这个时候btclick函数定义还没有输出,因此直接用window.onload=btclick会出错.
  但是window.onload=function(){btclick()}启用了一个匿名函数,匿名函数里再调用btclick


如果你是在Page_Load()中执行Response.Write(),这时候所有HTML都还没有Render,当然是你Write出去的东西跑在最前头了,而如果在这里放js,那么都会出现“未定义先调用”的错误。
   
  而如果是使用Page.RegisterStartupScript(),那么这段代码相当于客户端body.onload的时候执行,而客户端的body.onload发生在整个页面加载完毕之时,也就是整个文档的对象解释完毕,你的js当然可以调用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值