timeout - undgå postback
Applikationen udvikles som web til en pda. det vil sige at siden vises på en pda, ikke andet. Når en bruger så udfylder nogle felter, hvilket i det her tilfælde godt tage lang tid støder de nogen gange ind i timeout. Er der en måde (gerne dynamisk) hvorpå man enten kan lave et popup eller redirecte brugeren til login og derefter vende tilbage til siden, hvor alle oplysninger der var igang med at blive indtastet vil blive husket. Grunden til at jeg gerne vil have den dynamisk er at det skal være noget der kan bruges på rigtig mange sider og det ville være omkostningsfuldt at skulle ind og oprette variabler for alle textboxe radiobuttons osv på alle sider. Det jeg er kommet frem til indtil videre er (en control)(fra eggheadcafe):using System;
using System.ComponentModel;
using System.Web;
using System.Web.Security;
using System.Web.UI;
namespace Utility.SessionControl
{
/// <summary>
/// Summary description for SessionTimeoutControl.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:SessionTimeoutControl runat=server></{0}:SessionTimeoutControl>")]
public class SessionTimeoutControl : Control
{
private string strRedirectUrl;
[Bindable(true),
Category("Appearance"),
DefaultValueAttribute("")]
public string RedirectUrl
{
get{return strRedirectUrl;}
set{strRedirectUrl = value;}
}
public override bool Visible
{
get{return false;}
}
public override bool EnableViewState
{
get{return false;}
}
protected override void Render(HtmlTextWriter writer)
{
if(HttpContext.Current == null)
{
writer.Write("[*** SessionTimeout: " + this.ID + " ***]");
}
base.Render(writer);
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (this.strRedirectUrl == null)
throw new InvalidOperationException("RedirectUrl Property Not Set.");
if (Context.Session != null)
{
if (Context.Session.IsNewSession)
{
string sCookieHeader = Page.Request.Headers["Cookie"];
if ((null != sCookieHeader) && (sCookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
{
if (Page.Request.IsAuthenticated)
{
FormsAuthentication.SignOut();
}
Page.Response.Redirect(this.strRedirectUrl);
}
}
}
}
}
}
Men hvordan kan jeg gemme de oplysninger der var blevet indtastet på siden før? eller undgå at redirecte og bare lade siden vises mens der pronmptes i et javascript popup?