protected void Page_Load(object sender, EventArgs e)
    {
        this.Export();
    }    private void Export()
    {
        this.Response.ClearHeaders();
        this.Response.ClearContent();
        this.Response.Clear();        //从数据库获取数据并写入到this.Response.OutputStream        this.Response.Buffer = false;
        this.Response.BufferOutput = false;        this.Response.ContentEncoding = System.Text.Encoding.UTF8;
        this.Response.AppendHeader("Content-Disposition", "attachment;Filename=test.xls");
        this.Response.ContentType = "application/ms-excel";
        
        this.Response.End();
        this.Response.Close();    }第一次执行完Page_Load之后..IE会弹出询问下载画面..按 "下载/保存" 后..此页面会再次被访问..
如果第二次访问时,跳过Export方法..下载的文件是没有内容的..
1.为什么此页面会被重复访问?
2.应该如何修改啊..?

解决方案 »

  1.   

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
       {
          this.Export();
       }
    }Page_Load里面加一个判断 页面是不是第一次加载
      

  2.   

    IsPostBack 永远是false的..
    里面根本无用到任何asp.net控件
      

  3.   

    你update数据控件的时候你用不到。笑了
      

  4.   

    帅锅。只要你用了form runat=server就算哦
      

  5.   

    楼上各位..我是没有用到asp.net的控件
    所以绝对没有  runat=server<form action="xxx.aspx" target="_self" method="POST">
      

  6.   

    其实个人觉得如果你这个页面用来做下载功能的话  完全没必要用aspx。直接写个httphandler,速度快点。
      

  7.   

    如果是执行了2遍。我觉得可能是这个问题。首先访问你aspx页面的时候执行了onload,然后下载的时候再访问一次。
      

  8.   


    希望能单纯能解决上面的问题..之后这个页面里面会增加一些控件输入..作为搜索数据的条件
    但都是使用普通html标签..
      

  9.   

    第一次访问的时候..已经把数据写入OutputStream喇..
    就是不明白下载的时候会造成第二次访问..
    最后的成品是:
    此页面会有一些html控件,都是一些<input type="text"><input type="submit">
    然后把数据作为搜索条件,在DB获取数据后直接导出xls..
      

  10.   

    帮楼主顶一顶,看看版主再不?给他留私信问问。版主应该能帮到你。LikeCode llsen Sandy945
      

  11.   

    楼主第二次下载的时候,是不是把aspx页面下载了。
      

  12.   

    if (!IsPostBack)
      {
      this.Export();
      }
      

  13.   

    如果第二次访问时,跳过Export方法..下载的文件是没有内容的..  什么意思
      

  14.   


    在Export斷點..第二次進入的時候..不執行獲取數據那段..
    最終是什麽都沒有下載..只有一份空白的文件或者copy一樓的代碼試試..