Ehk meil on vaja teha järgmine lähenemine
loginTenant.aspx => EstIdCard.aspx(sellelt lehelt saadud andmed saadame tagasi) => loginTenant.aspx
loginTenant.aspx veebilehel
<%--teeme strongly referenced type EstIdCard.aspx veebilehle, et sealt public properteid lugeda--%>
<%@ PreviousPageType VirtualPath="~/EstIdCard.aspx" %>
<asp:Label ID="Label2" runat="server"></asp:Label>
<%--selle nupu ButtonIDTest vajutus käivitab operatsiooni--%>
<asp:Button ID="ButtonIDTest" runat="server" CausesValidation="False"
Text="ButtonTest" PostBackUrl="~/EstIdCard.aspx" />
loginTenant.cs code-behind
protected void Page_Load(object sender, EventArgs e)
{
if ((Page.PreviousPage != null) && PreviousPage.IsCrossPagePostBack)
{
//saame eelmiselt lehelt andmed kätte
this.Label2.Text += PreviousPage.idcode;
}
else
{
this.Label2.Text = "ei õnnestunud";
}
}
EstIdCard.aspx veebileht, siia kirjutame nüüd jupi javascripti, et teha automaatne tagasisuunamine, kasutame asp:Button PostbackUrl-i et loginTenant.aspx lehel saaksime kindlad olla, et toimub tagasisuunamine.
Siin peab just olemas, see PostBackUrl, et
see osa töötaks: if ((Page.PreviousPage != null) && PreviousPage.IsCrossPagePostBack)
Lihtsalt Response.Redirect kasutada ei saa.
See javascriptis tehtud funktsioon ExecuteClick irriteerib nupu vajutust
<script language="javascript" type="text/javascript">
<!--
function ExecuteClick() {
document.getElementById("<%=ButtonTagasi.ClientID %>").click();
}
-->
</script>
<asp:Button ID="ButtonTagasi" runat="server" CausesValidation="False"
PostBackUrl="~/loginTenant.aspx" Text="Click to continue..." />
EstIdCard.cs
public property, selleks, et saaks andmeid edastada
public string idcode
{
set { this.ViewState["isikukood"] = value; }
get
{
if (this.ViewState["isikukood"] == null)
return "";
else
return this.ViewState["isikukood"].ToString();
}
}
protected void Page_Load(object sender, EventArgs e)
{
idcode = "IDnumbriväärtus"; // väärtustame public propery
//lisame nupule automaatseks tagasisuunamiseks javascripti jupi
this.ButtonTagasi.Attributes.Add("onFocus", "ExecuteClick()");
}
protected void Page_PreRender(object sender, EventArgs e)
{
//siin nüüd sätime nupule fookuse, ehk käivitame varem tehtud funktsiooni Javascriptis ExecuteClick, mis teeb cross-page postbacki tagasi algsele loginTenant.aspx lehele
this.ButtonTagasi.Focus();
}
Blogged with the Flock Browser