2011-08-02 76 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