您的位置:首页 > Web前端 > JavaScript

asp.net控制DIV,javascript

2009-06-05 12:33 357 查看
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当然可以调用了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: