我用服务端控件ImageButton中的Click事件里用Response.Redirect("Froms/Frmxf.aspx?sql="+t_sql)不能开新页面(意思就是它会在同一窗口打开Frmxf.aspx页面)。请问如何开新页面(重新开个窗口打开Frmxf.aspx页面)
在ImageButton的Click事件里有C#代码。

解决方案 »

  1.   

    Response.Redirect()确实不能另开新窗口。
    如果偏要在服务期端生成开新窗口的代码,可以写一段客户端脚本,然后发送到客户端:string strScript="<script language=javascript>window.open('Froms/Frmxf.aspx?sql="+ t_sql + "')</script>";
    this.RegisterClientScriptBlock("OpenWindowScript",strScript);另外,我个人觉得在URL上传递Sql字符串,好像不是很好啊~
      

  2.   

    同意楼上的看法
    sql不能这么传递
    可以用Session
      

  3.   

    意思就是用服务端控件可以在后台编写代码。而代码执行完以后我想跳到另一个页面,这时就只能用Response.Redirect("Froms/Frmxf.aspx?sql="+t_sql)跳到另一个页面。而这样又不能重新开一个页面打开只能在本页面打开。我的意思是想代码执行完后跳到另一个页面而另一个页面重新开个窗口打开。
        
      

  4.   

    那你应该用js来实现
    window.open('yoururl')
      

  5.   

    response.write("<script language=javascript>window.open('Froms/Frmxf.aspx?sql="+ t_sql + "')</script>")
      

  6.   

    参考解决方案:
    开发自定义按钮控件,控件在点击的时候,实现脚本
    function Submit(action, target)
    {
        document.forms[0].action = action;

        if(target != null && target.length != 0)
            document.forms[0].target = target;

        document.forms[0].__VIEWSTATE.disabled = true;
        document.forms[0].submit();
    }
      

  7.   

    那你应该用js来实现
    window.open('yoururl')
      

  8.   

    建议使用这一种
    string strScript="<script language=javascript>window.open('Froms/Frmxf.aspx?sql="+ t_sql + "')</script>";
    this.RegisterClientScriptBlock("OpenWindowScript",strScript);