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当然可以调用了。 |