Friday, May 10, 2024
Homepage · c#
 Popular · Latest · Hot · Upcoming
3
rated 0 times [  9] [ 6]  / answers: 1 / hits: 30782  / 11 Years ago, wed, july 17, 2013, 12:00:00

I have a class to deal with session variables. Here is a sample attached:



namespace General
{

public class Session
{
public Session()
{
}


public static string UserID
{
get { return HttpContext.Current.Session[UserID] as string ?? String.Empty; }
set { HttpContext.Current.Session[UserID] = value; }
}

public static string departFlightID
{
get { return HttpContext.Current.Session[departFlightID] as string ?? String.Empty; }
set { HttpContext.Current.Session[departFlightID] = value; }
}

public static string returnFlightID
{
get { return HttpContext.Current.Session[returnFlightID] as string ?? String.Empty; }
set { HttpContext.Current.Session[returnFlightID] = value; }
}
}

}


Now at some point I store the flightID in:



General.Session.departFlightID = flightID;


And at another point I want to retrieve this value using Javascript. I have seen examples here but they won't work (there's no error but they will return EMPTY).



Most recent tries:



 var session = '<%= General.Session.departFlightID %>';
var session = '<%= HttpContext.Current.Session[departFlightID] %>';


It does work if I set value on page load, but I am running a webmethod where I create a html and then send that html back to be populated inside a div to make a ticket there. I need to get the session value but it does not update.



To make it more clear here is the Javascript code:



<script type=text/javascript>


function addTicket(flightID, flightType) {
PageMethods.addTicket(flightID, flightType, OnGetMessageSuccess);
}

function OnGetMessageSuccess(result, userContext, methodName) {

var pageUrl = document.URL;
if (pageUrl.indexOf(&ret_date=&) !== -1) {

var session = '<%= HttpContext.Current.Session[departFlightID] %>';

alert(session);
result = result + <a onclick=searchflight.abortAllAjax() data-index=6 class=bookNow title=Book Now! href=#>Book Now!</a>;
result = result + </div> </div> </div>;
document.getElementById(detail).innerHTML = result;
}

}




And here is the webmethod:



[System.Web.Services.WebMethod]
public static string addTicket(string flightID, string flightType)
{
//GET FLIGHT DETAILS FROM DATATABLE OR SESSION DATA TABLE
string tmpHtml = string.Empty;
tmphtml=sample;
string flightID=123123213;
General.Session.departFlightID=flightID;

return tmphtml;
}

More From » c#

 Answers
41

This is the same Question as here.



we usually have sensitive data in Session Variables, so they are always server side. Still if you want you can try adding a HiddenField in your .aspx markup and in code behind you can set it . once the value is set, you can very easily access the value using $(#id) way or Document.GetElementById() method.


[#76935] Tuesday, July 16, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
alli

Total Points: 409
Total Questions: 101
Total Answers: 105

Location: The Bahamas
Member since Tue, Apr 27, 2021
3 Years ago
alli questions
Sat, Apr 23, 22, 00:00, 2 Years ago
Mon, May 18, 20, 00:00, 4 Years ago
Tue, Mar 24, 20, 00:00, 4 Years ago
Fri, Jan 24, 20, 00:00, 4 Years ago
;