2011-08-02 113 views
0

我製作了一個使用asp.net登錄系統的ASP .net應用程序。我使用一個類來獲取登錄用戶的一些細節,例如姓名,地址等。在用戶可以更改他的詳細信息的頁面中,我有這些命令。如果我不使用page_load中的命令,地址在數據庫中成功更改,但是如果我使用它們,數據庫不會在地址中進行更改。這怎麼可能?該profileC類使用ProfileBase類ASP .NET中的配置文件問題

 protected void Page_Load(object sender, EventArgs e) 
    { 
     if (HttpContext.Current.User.Identity.IsAuthenticated) 
     { 
      classes.ProfileC pr = classes.ProfileC.GetProfileC(HttpContext.Current.User.Identity.Name); 

      TxtAddress.Text = pr.UserAddress; 

     } 

    } 

    protected void BtnAdd_Click(object sender, EventArgs e) 
    { 
     classes.ProfileC pr = classes.ProfileC.GetProfileC(HttpContext.Current.User.Identity.Name); 
     pr.UserAddress = TxtAddress.Text; 

     pr.Save(); 
    } 
} 
+0

你是說此之前不要忘頁面加載然後調用pr.Save,它不會保存? – Josh

+0

我想他是說如果他把代碼從'Page_Load'中取出,他可以設置它。使用'Page_Load'中的代碼,他不能 - 因此我的回答 - 需要'Page_Load'中的if!IsPostBack測試,因爲它在保存操作發生之前重置了文本框文本... – bgs264

回答

1

的繼承你需要在你的Page_LoadIf !IsPostback您當前的if內部邏輯。

當您按下那個剛剛通過訪問pr.UserAddress防止在BtnAdd_Click保存或你說,如果你嘗試更改地址按鈕Page_Load將觸發BtnAdd_Click