0

我有 2 页。main.aspx 和 download.aspx download.aspx 的 page_load 是下载文件文本框和 main.aspx 的下载按钮 - page_load 处没有功能 - 按钮重定向到 download.aspx - 文本框不能留空。

在我填写文本框并按下按钮后,页面仍保留在 main.aspx 并从 download.aspx 下载文件。现在的问题是,按下下载按钮后如何清除文本框?

我试过了:

  1. this.Textbox1.Text = "";重定向之前和之后。
  2. ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "document.getElementById('Textbox1').value =''", true);重定向之前和之后
  3. Response.Redirect("main.aspx);Response.Redirect("download.aspx");
  4. onclientclick = "validation()"

函数验证() { document.getElementById('TextBox1').value= ""; }

记住我有验证,所以 4. 不能工作。

5. 

    OnClientClick ="document.forms[0].target = '_blank';"/>

          Response.Redirect(”download.aspx”,false);
        Textbox1.Text="";

6. Textbox1.EnableViewState = false;

7.button点击,重定向到main2.aspx,页面加载在main2.aspx重定向到download.aspx。但是在我单击 main.aspx 处的按钮后,文件已下载,但页面仍保留在 main.aspx 中。

上面的方法都不起作用,我还能尝试什么?问题是什么?为什么文本框不能设置为空白?

主文件

protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
   this.TextBox1.Text = "";
   Response.Redirect("download.aspx");
   this.TextBox1.Text = "";
}

下载.aspx

protected void Page_Load(object sender, EventArgs e)
{
   string reportPath = "C:\\form.pdf";

   Response.ContentType = "appplication/pdf";
   Response.AppendHeader("Content-Disposition", "attachment; filename=form.pdf");
   Response.TransmitFile(reportPath);
   Response.End();
}
4

2 回答 2

0

我想,你可以使用get方法下载。按钮的 onClientClick 代码:

function doGet(){
var txt=document.getElementById('<%=this.TextBox1.ClientID %>').value;
window.open ('download.aspx?file='+txt);
document.getElementById('<%=this.TextBox1.ClientID %>').value='';
}

并在 download.aspx.cs

您可以从 main.aspx 中获取值,例如

string file=this.Request.QueryString["file"];

不要使用 ReDirect 方法来请求下载页面。

于 2013-05-15T09:23:22.857 回答
0

尝试使用javascript清除文本框值

于 2013-05-15T09:10:57.880 回答