2013-05-15 2 views
0

У меня 2 страницы. main.aspx и download.aspx Page_Load на download.aspx, чтобы загрузить файл текстовое поле и кнопку загрузки на main.aspx -ны функции на Page_Load -кнопки перенаправлять download.aspx -textbox не может быть оставлен пустым.очистить текстовое поле после перенаправления на страницу загрузки

после того, как я заполнил текстовое поле и нажал кнопку, страница осталась на 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') значение = ""; }

У меня есть валидация, поэтому 4. не может работать.

5. 

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

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

6. Textbox1.EnableViewState = false; 

7.button щелкнул, перенаправлять main2.aspx, Pageload в main2.aspx редирект на download.aspx. но после того, как я нажал кнопку на main.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 = ""; 
} 

download.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(); 
} 
+0

Любое событие клиринга, которое у вас есть, будет работать только после обратной передачи. Таким образом, только после загрузки/перезагрузки страницы. Вам нужно использовать Javascript, чтобы очистить его на стороне клиента. – TheGeekZn

ответ

0

Попробуйте JavaScript, чтобы очистить значение TextBox

+0

. Пожалуйста, улучшите свой ответ на то, как вы это сделаете, используя javascript! –

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"]; 

Не используйте редирект метод для запроса страницы загрузки.

+0

проблема все еще остается, однако я пробовал другой метод, посмотрите на метод 7. – melvintcs