2013-08-22 168 views
0

我已經瀏覽了我的代碼,看看是否存在空值,但是每個人都帶來了價值,但我找不到問題。錯誤對象引用未設置爲對象的實例?

public partial class UserDetail : ICSBaseUserControl 
{ 
    UserRepository userDao = new UserRepository(); 
    User user; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      long userID = Convert.ToInt64(Request[UrlParameters.UrlParameterName.UserID]); 
      user = (userID > 0) ? userDao.GetUser(AppSession.Company.ID, userID) : new c365_EntityFramework.User(); 
      if (user.ID > 0) 
      { 
       txtFirstName.Text = user.Forename; 
       txtSurname.Text = user.Surname; 
       txtAddress.Text = user.Address1; 
       txtEmail.Text = user.Email; 
       txtUsername.Text = user.Username; 

      } 
     } 
    } 

    protected void Button2_Click(object sender, EventArgs e) 
    { 
     bool result = userDao.UpdateUser(user.ID, txtFirstName.Text, txtEmail.Text, txtSurname.Text, txtAddress.Text, txtUsername.Text); 
    } 
} 

編輯

這是我的固定它,通過移動user裝載了if(!IsPostBack)的:

public partial class UserDetail : ICSBaseUserControl 
{ 
    UserRepository userDao = new UserRepository(); 
    User user; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     long userID = Convert.ToInt64(Request[UrlParameters.UrlParameterName.UserID]); 
     user = (userID > 0) ? userDao.GetUser(AppSession.Company.ID, userID) : new c365_EntityFramework.User(); 
     if (!IsPostBack) 
     { 
      if (user.ID > 0) // Check for user ID 
      { 
       txtFirstName.Text = user.Forename; 
       txtSurname.Text = user.Surname; 
       txtAddress.Text = user.Address1; 
       txtEmail.Text = user.Email; 
       txtUsername.Text = user.Username; 
      } 
     } 
    } 
+2

哪一行是錯誤? – Paddyd

+0

你在哪裏得到這個錯誤? –

+0

bool result = userDao.UpdateUser(user.ID,txtFirstName.Text,txtEmail.Text,txtSurname.Text,txtAddress.Text,txtUsername.Text); – user2520671

回答

4

我相信問題是場user沒有被實例化因此您的按鈕點擊將會是null

您的Page_Load僅填充user如果不是回發。所以,當你按下按鈕回發正在進行中,並且你沒有得到那個時候的user?另外,您需要查看ASP .NET頁面生命週期。

ASP .NET頁面做記得領域,你可能想把user到會話狀態,然後用這種方式。

+0

不,它沒有工作 – user2520671

+0

當你說不,它沒有工作時,你有什麼嘗試/完成?將它存儲在會話中?回顧一下?什麼?在新的問題或編輯中顯示您的更新代碼。 – Belogix

+0

它沒有正常工作 – user2520671

相關問題