SmartNavigation可以减少页面刷新,它还是加载以前的ViewState,页面输出的Html并不改变,因此无论是用Reponse.write(“<script>window.open(...)</script)”还是RegisterStartupScript都不能实现弹出窗口的功能,但是每次刷新时,页面上的Label或是Literal的Text属性是可以改变的,因此,可以利用Literal.Text属性,将其设为“<script>window.open(...)</script)”就可以了。
值得注意的一点,在aspx页面中,WebControl控件并不是一定要放在<form></form>标记之间,它也可以放在<head></head>之间或是其他任何地方,因为在页面分析的时候,并不关注其页面的HTML的实际内容,因此,在写JavaScript语句时,甚至可以将一些需要从数据库读出的内容用一个Literal来进行显示。如下代码所示。
页面代码:
<head>
<script>
...JavaScript...
<asp:Literal id="Want" runat="server"></asp:Literal>
...JavaScript...
</script>
</head>
然后在代码中设置Literal.Text属性,这样也可以实现变化的JavaScript语句了。