你的ItemCommand如何写的?是不是Response.Write()的?

解决方案 »

  1.   

    对,的确是用Response.Write()的,这样是不是有问题,应该怎么做呢??
      

  2.   

    这个是个很麻烦的问题,因为当你执行ItemCommand的时候你的页面没有刷新的到新的一页,所以当你再刷新页面的时候,他就又执行了一次操作。
      

  3.   

    弹出新窗口的代码通过“Response.Write”被写在当前页html代码的最上面,刷新时,不一定会触发itemCommand,但是脚本会被重新执行。
    你看一下当前页面的代码,就知道了。
      

  4.   

    当刷新是不会触发ItemCommand事件,您那时由于刷新是程序有输出了(打开一个新的窗口)这个js函数,把代码贴出来
      

  5.   

    的确是这样,openwindow的代码写在了页面中,如果不重新发送的话会执行并弹出窗口。但是刷新时有提示,可以重新发送信息刷新页面,这个时候就是新的页面,但是这时候会触发ItemCommand事件,继续弹出。有什么好的方法吗??
      

  6.   

    Response.Write();
    -->Page.RegisterStartupScript("fresh","<script>alert('...');</script>");
      

  7.   

    我试则使用Page.RegisterStartupScript方法,好象还是会写在html代码中的呀。问题还是一样
      

  8.   

    你在被打开的页面的Page_Load的时候初始化一个session变量,再在ItemCommand判断sessoin是否存在,如果有的话就不执行打开一个新的窗口的语句
      

  9.   

    但是你下次在打开那个DataGrid所在页面的时候,如果session还存在的话就不会打开新的窗口了。你要注意在被打开页面关闭或者在连接到那个DataGrid所在页面之前及时释放掉Session变量