97 votes

Comment accéder aux variables de session et les définir en javascript ?

Dans le code-behind, j'ai mis Session avec quelques données.

Session["usedData"] = "sample data";

La question est la suivante : comment puis-je obtenir la valeur de la session (dans mon exemple, "données de l'échantillon") en javascript et la définir ? Session["usedData"] avec une nouvelle valeur ?

5voto

btevfik Points 1770

Attribuer une valeur à un champ caché dans le fichier code-behind. Accédez à cette valeur dans votre javascript comme un contrôle HTML normal.

2voto

Mohaimin Moin Points 567

Vous ne pouvez pas définir des variables de session à partir de Javascript . Pour ce faire, vous devez créer un fichier AJAX POST pour le mettre à jour sur le serveur Cependant, si le choix d'une voiture est un événement majeur, il peut être plus facile de POST ceci.

2voto

Behnam Points 434

D'abord créer une méthode dans le code derrière pour définir la session :

 [System.Web.Services.WebMethod]
 public static void SetSession(int id)
 {
     Page objp = new Page();
     objp.Session["IdBalanceSheet"] = id;
 }

puis l'appeler du côté client :

function ChangeSession(values) {
     PageMethods.SetSession(values);
     }

vous devez définir EnablePageMethods sur true :

<asp:ScriptManager EnablePageMethods="true" ID="MainSM" runat="server" ScriptMode="Release" LoadScriptsBeforeUI="true"></asp:ScriptManager>

2voto

Chandan Rajbhar Points 31

Si vous voulez lire la valeur de la session en javascript, ce code vous aidera.

<script type='text/javascript'> var userID='@Session["userID"]'; </script>

2voto

code-it Points 61

Voici ce qui a fonctionné pour moi. Javascript a ceci.

<script type="text/javascript">
var deptname = '';
</script>

C# Code derrière a ceci - il pourrait être mis sur la page principale de sorte qu'il réinitialise var sur chaque changement de page.

        String csname1 = "LoadScript";
        Type cstype = p.GetType();

        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = p.ClientScript;

        // Check to see if the startup script is already registered.
        if (!cs.IsStartupScriptRegistered(cstype, csname1))
        {
            String cstext1 = funct;
            cs.RegisterStartupScript(cstype, csname1, "deptname = 'accounting'", true);
        }
        else
        {
            String cstext = funct;
            cs.RegisterClientScriptBlock(cstype, csname1, "deptname ='accounting'",true);
        }

Ajoutez ce code à un bouton de clic pour confirmer le changement de nom de département.

alert(deptname);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X