2016-12-27 3 views
2

Ich habe ein Stück Code, für den ich Session Werte überprüfen. SoSitzung sind null, aber immer noch nicht Null gehen

, während Zeilen einfügen zum ersten Mal innerhalb gridview, ich bin Einstellung der session Wert als null auf Page_load.

Aber während des Debuggens, was hier passiert ist, es innerhalb Zustand immer noch, wo Session als not null

Unten aktiviert ist mein Code.

int iRowCountExp = 0;  
if (Session["ExpInfo"] != null) 
{ 
    dtExpInfo = (DataTable)Session["ExpInfo"]; 

    if (strMode == "M") 
    { 
     FunFillGridDetails(); 
     dtExpInfo = (DataTable)Session["ExpInfo"]; 
    } 
} 
else 
{ 
    BindDataTable(); 
} 

Page_load Code

if (!IsPostBack) 
{ 
    Session["ExpInfo"] = null; 
} 
+0

, die Sie nennen sind Session [ "ExpInfo"] erstellen ??? –

+0

@DenishParvadia: Entschuldigung hat dich nicht bekommen. – BNN

+0

Überprüfen Sie den Sitzungsnamen und erhalten Sie den Wert Sitzungsname ist gleich oder nicht? –

Antwort

1

Session.Remove(variableName) löscht den Eintrag Feinbearbeitung (beide Schlüssel & Wert) aus dem Wörterbuch. Session[variableName] = null weist dem Schlüssel im Wörterbuch einen Wert zu (Wert ist null). Also ist der Wert nur Null und der Schlüssel wird noch existieren. Wenn Sie die Variable mit Session.Remove(variableName) entfernen, wird die Variable gelöscht und Ihre Prüfung ist erfolgreich. Ich hoffe, du hast verstanden.

Daher sollte Ihr Code sein:

if (!IsPostBack) 
{ 
    Session.Remove("ExpInfo"); 
} 
+0

So Beim Laden der Seite sollte der Code session.remove und session [Expinfo] ?? – BNN

+0

Bitte lesen Sie meine Antwort noch einmal. Wann immer Sie Ihre Sitzung löschen möchten, verwenden Sie 'Session.Remove()'. Sie müssen den Wert des Schlüssels nicht auf "null" festlegen, es sei denn, Sie möchten, dass der Schlüssel mit dem Wert "null" vorhanden ist. @ Nad – ViVi

+0

Wenn ich nur eine Zeile im gesamten Raster hinzufügen funktioniert es, aber wenn ich mehr als eine Zeile hinzufügen, gibt es mir Fehler – BNN

0

diesen Code versuchen

if (!IsPostBack) 
    { 
     Session["ExpInfo"] = string.Empty; 
      string value = Session["ExpInfo"] as string; 
     if (String.IsNullOrEmpty(value)) 
     { 
      BindDataTable(); 
     } 
     else 
     { 
      dtExpInfo = (DataTable)Session["ExpInfo"]; 
      if (strMode == "M") 
      { 
      FunFillGridDetails(); 
      dtExpInfo = (DataTable)Session["ExpInfo"]; 
      } 
     } 
    } 
+0

Lassen Sie mich versuchen und überprüfen, – BNN

+0

erhalten Fehler als 'nicht in der Lage, Objekt des Typs 'System.String' auf den Typ 'System.Data.DataTable' zu symbolisieren.' 'DtExpInfo = (DataTable) Sitzung [" ExpInfo "];' – BNN

Verwandte Themen