2015-05-14 5 views
4

У меня есть знак в поле в моей веб-странице, которая находится внутри UpdatePanelКак перенаправить на другую страницу после задержки

<asp:UpdatePanel runat="server" ClientIDMode="Static" ID="upSign" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <div class="dvHolder hidOverflow clearfix"> 
      <input id="txtSUser" type="text" name="SUsername" value="" placeholder="Username" runat="server" /> 
     </div> 
     <div class="dvHolder hidOverflow clearfix"> 
      <input id="txtSPass" type="password" name="SPassword" value="" placeholder="Password" runat="server" /> 
     </div> 
     <div class="dvHolder hidOverflow clearfix setTextRight"> 
      <asp:Button ID="btnSignIn" ClientIDMode="Static" runat="server" Text="Sign In" OnClick="btnSignIn_Click" /> 
      <asp:Label runat="server" Text="" ID="lblSSuccess" ClientIDMode="Static" CssClass="lblMsgSuccess" /> 
     </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 

После того как пользователь успешно проверен, я хочу, чтобы показать сообщение и перенаправить после задержка (скажем, 5 секунд). У меня есть следующий код, но он не перенаправлять:

public void btnSignIn_Click(object sender, EventArgs e) 
{ 
    lblSSuccess.Text = "We found you, now redirecting..."; 
    lblSSuccess.ForeColor = ColorTranslator.FromHtml("#037203"); 
    Session["UseIsAuthenticated"] = "true"; 

    Response.AppendHeader("Refresh", "5;url=homepage.aspx"); 
} 

сообщение обновляется, но страница не перенаправляет по какой-то причине.

Пожалуйста, помогите мне решить проблему.

+1

Refresh не стандартный заголовок ответа HTTP, и не соблюдается всеми браузерами, см https://stackoverflow.com/questions/283752/refresh-http-header –

ответ

7

вы можете написать блок Javascript с задержкой и перенаправление на страницу с этим код

public void btnSignIn_Click(object sender, EventArgs e) 
{ 
    lblSSuccess.Text = "We found you, now redirecting..."; 
    lblSSuccess.ForeColor = ColorTranslator.FromHtml("#037203"); 
    Session["UseIsAuthenticated"] = "true"; 

    ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "redirectJS", 
    "setTimeout(function() { window.location.replace('homepage.aspx') }, 5000);", true); 
} 
+0

Совершенных. Я просто немного изменил код, чтобы заставить его работать. – SearchForKnowledge

2

сначала создать функцию, которая делает действие, которое нужно (перенаправление на страницу, например)

Второй добавить таймер разметке и установить временной интервал до 5000 (5 сек) и отметьте таймер, как включен = ложным так что таймер обыкновение начинать после загрузки страницы

как только пользователь успешно проверен, показать сообщение, которое вы хотите затем включить таймер

0

Существует много способов сделать это, но я люблю использовать этот код, потому что он хорошо работает при использовании в самых разных обстоятельствах. Это с задержкой в ​​5 секунд.

HtmlMeta oScript = new HtmlMeta(); 
oScript.Attributes.Add("http-equiv", "REFRESH"); 
oScript.Attributes.Add("content", "5; url='http://www.myurl.com/'"); 
Page.Header.Controls.Add(oScript);