我加了this.SmartNavigation=true;之后Response.Write("<script language='javascript'>alert('修改成功!');</script>");这条语句被执行了,但是它并不弹出“修改成功”,这是怎么回事呢?
是不是javascript和this.SmartNavigation=true;冲突呢?
怎么解决?

解决方案 »

  1.   

    Response.Write("<script>alert('修改成功!');</script>");不用标明language='javascript'应该可以吧....
      

  2.   

    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语句了。
      

  3.   

    上面是我从网上搜到的
    Literal是什么东西?
    没看太明白
    请高手详细指点一下上面的意思
      

  4.   

    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    Literal1.Text = "script block";可以不用SmartNavigation, 用SetFocus和MaintainScrollPositionOnPostback可以代替它的能.
    如果是1.1, 写js也可以起到MaintainScrollPositionOnPostback的功能.