Задержка в событии в коде позади файла - PullRequest
0 голосов
/ 15 марта 2012

В моем приложении у меня есть кнопка для сохранения информации.Тем не менее, я хотел бы иметь задержку в коде до выполнения последней строки, чтобы пользователь мог прочитать сообщение, которое появляется, прежде чем он будет перенаправлен на новую страницу.

Я знаю, что делать этоне совсем оптимальный способ, но по некоторым причинам (например, по времени) я все равно хочу это сделать.

Так возможно ли это, и если да, то как я могу это сделать?

Заранее спасибо!

protected void SaveButton_Click(object sender, EventArgs e) {
    // Lots of code not relevant for the problem here

    Service service = new Service();
    service.SaveMovie(movie);

    successMessage.Visible = true;
    happyMessage.Text = "The movie was successfully added, now add some genres!";

    // Here I want a delay of 2 seconds before the next line is executed...

    Response.Redirect(String.Format("~/Edit.aspx?id={0}", movie.MovieID), false);
}

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Вы должны сделать это на стороне клиента. Одна из альтернатив это:

Определите функцию Javascript на странице с именем redirect следующим образом:

function redirect(url)
{
   setTimeout(function(){window.location.href=url;} ,2000);
}


protected void SaveButton_Click(object sender, EventArgs e) 
{

    // Lots of code not relevant for the problem here
    Service service = new Service();
    service.SaveMovie(movie);
    successMessage.Visible = true;
    happyMessage.Text = "The movie was successfully added, now add some genres!";

     // Here I want a delay of 2 seconds before the next line is executed...
     ClientScript.RegisterStartupScript(this.GetType(),"somekey","redirect('"+String.Format("~/Edit.aspx?id={0}", movie.MovieID)+"');");

}
0 голосов
/ 15 марта 2012

Это будет легко, если вы используете Javascript. Использование javascript повысит производительность

Button_Click
{    

string js ="<script type='text/javascript'>setTimeout(function()window.location.href="+String.Format("~/Edit.aspx?id={0}", movie.MovieID)+";} ,2000);</script>"     

ScriptManager.RegisterStartupScript (Me.Page, GetType (Page), "js", js, False)

}

возможный дубликат задержка asp.net перед перенаправлением ответа

...