2012-05-30 38 views
0

爲什麼下面的代碼產生錯誤「對象引用未設置爲對象的實例即使我在按鈕點擊時使用set session方法事件?無法投射會話變量包含要列出的對象列表

public partial class MergePopUp : System.Web.UI.Page 
{ 

List<MergeAccounts> Mlist = new List<MergeAccounts>(); 

protected void Page_Load(object sender, EventArgs e) 
{ 

} 
private void SetSession() 
{ 
    if (Session["Account"] == null) 
    { 
     Session["Account"] = Mlist; 
    } 
} 


protected void AddToMergeList_Click(object sender, EventArgs e) 
{ 
    MergeAccounts obj = new MergeAccounts(); 
    obj.AccountNumber = Convert.ToInt32(AccountNumber.Text); 
    obj.PinNumber = Convert.ToInt32(PinNumber.Text); 
    int temp = obj.IsAccNoValid(obj.AccountNumber, obj.PinNumber); 
    if (temp == 0) 
    { 
     FoundOrNot.Visible = true; 
     FoundOrNot.Text = "Enter a valid Pin Number against this Account number"; 
    } 
    else 
    { 
     DataSet MyDataSet = obj.ShowDetails(obj.AccountNumber, obj.PinNumber); 
     foreach (DataRow myRow in MyDataSet.Tables[0].Rows) 
     { 
      AccountTitle.Text = myRow["Title"].ToString(); 
      Balance.Text = myRow["Balance"].ToString(); 
      CreationDate.Text = myRow["CreationDate"].ToString(); 
     } 
     obj.AccountTitle = AccountTitle.Text; 
     obj.Balance = Convert.ToDouble(Balance.Text); 
     obj.CreationDate = Convert.ToDateTime(CreationDate.Text); 
     Mlist.Add(obj); 
     Session["Account"] = Mlist; 
     SetSession(); 
    } 
} 
protected void AddNext_Click(object sender, EventArgs e) 
{ 
    foreach (TextBox i in this.Page.Form.Controls.OfType<TextBox>().ToList()) 
    { 
     i.Text = null; 
    } 
    FoundOrNot.Visible = false; 
} 
protected void CheckList_Click(object sender, EventArgs e) 
{ 
    SetSession(); 
    Response.Redirect("Merge.spx"); 
} 

} 
+0

你能告訴我們您最初充滿你的會話[「帳戶」]?因爲現在你正試圖將Session [「account」]中的任何內容傳遞給Mlit。這可能不起作用,因爲你沒有正確填寫會話。 – Thousand

回答

0

是同一頁上的兩個按鈕嗎?如果是這樣,創建一個方法可以訪問兩個按鈕設置會話變量。請確保您檢查它是否已設置,以便它只設置一次。

private void SetSession() 
{ 
    if(Session["Account"] == null) 
     Session["Account"] = "Value"; 
    else 
     //what do you want to do here 
} 


protected void button1_click(.....) 
{ 
    SetSession(); 
    //do something 
} 

protected void button2_click(....) 
{ 
    SetSession(); 
    //redirect 
} 

這個會話總是設置第一個按鈕或第二按鈕是否被點擊

+0

是兩個按鈕是相同的頁面.. ...是值ac#關鍵字,你用在這裏? –

+0

,應該用您想要分配給會話變量的值替換 – codingbiz

+0

仍然是同樣的錯誤:/ –

1

會議[ 「帳戶」]可能是零。

+0

Tunmise fasipe:Actuslly我在一個按鈕單擊事件和重定向頁面從第二個按鈕單擊事件中的會話變量列表..多數民衆贊成共振這是空...有一些方法,我可以保留我的會話變量這辦法?? –

0

將突破此點

Mlit = (List<MergeAccounts>)Session["Account"]; 

然後加入對請按F5以逐步執行應用程序,並將鼠標放在Session [「Account」]上檢查值 - 它可能爲空

+0

Tunmise fasipe: Actuslly我在一個按鈕點擊事件和重定向頁面從第二個按鈕點擊事件採取會議變量中的列表..多數民衆贊成在共振這是空... **有一些出路,我可以保存我的會話變量這種方式?? ** –

+0

檢查我的意見在這裏 – codingbiz

相關問題