Bonjour, je débute avec les variables de session et j'aimerais savoir pourquoi j'obtiens un null lors d'un postback et comment régler ce problème.

J'ai une aspxgridview (DevExpress) où j'utilise l’événement "AddNewRow".

La première fois que je lance mon site web (en local), la page s'ouvre bien puis lorsque que je clique sur l'hyperlien "New" (qui repasse dans le page_load), j'obtiens un NullReferenceException (DataSet = Null).

Mais le truc que je ne comprends pas est que lorsque je lance le site web une seconde fois,tout fonctionne bien, pas d'exception, et ce, jusque quand je réalise une nouvelle modification dans mon code et que je relance mon site web.

Voici mon code Page_Load :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
DataSet ds = null;
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack && !IsCallback)
            {
                ds = new DataSet();
                DataTable masterTable = new DataTable();
                masterTable.Columns.Add("RefArticle", typeof(int));
                masterTable.Columns.Add("Description", typeof(string));
                masterTable.Columns.Add("Quantity", typeof(int));
                masterTable.Columns.Add("PU", typeof(decimal));
                masterTable.Columns.Add("PUCurrency", typeof(decimal));
                masterTable.Columns.Add("Discount", typeof(decimal));
                masterTable.Columns.Add("Amount", typeof(decimal));
                masterTable.Columns.Add("AmountCurrency", typeof(decimal));
                masterTable.PrimaryKey = new DataColumn[] { masterTable.Columns["RefArticle"] };
 
                ds.Tables.AddRange(new DataTable[] { masterTable });
                Session["DataSet"] = ds;
            }
            else
            {
                ds = (DataSet)Session["DataSet"];
            }
            ASPxGridViewArticles.DataSource = ds.Tables[0];
            ASPxGridViewArticles.DataBind();
        }
Merci.