2012-09-21 5 views
2

사용자가 자신의 사용자 정보 (예 : 이름)를 업데이트 할 수있는 페이지가 있습니다. 이 페이지에는 사용자의 이름을 비롯한 많은 정보를 표시하는 사용자 정의 컨트롤이 있습니다.페이지 다시 게시 후 사용자 정의 데이터를로드 하시겠습니까?

내 문제는 내가이 페이지에서 이름을 변경하면 데이터를 저장 한 후 사용자 정의 컨트롤이 업데이트되지 않는다는 것입니다.

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    ... 
    user.FirstName = txtFirstName.Text(); 
    user.Save(); 
    ... 
} 

내 사용자 컨트롤 사용자 정보를 표시합니다 :

protected void Page_Load(object sender, EventArgs e) 
{ 
    ... 
    lblFirstName.Text = user.Firstname; 
    ... 
} 

I를 사용자 정보를 저장하는

<UC:LeftNav ID="leftNav" runat="server" /> 

<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox> 

<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" /> 

내 버튼을 클릭 이벤트 :

여기에 내 프런트 엔드입니다 디버거를 거쳤으며 내 페이지의 btnSave_Click 이벤트가 발생했습니다. 내 사용자 컨트롤의 Page_Load 이벤트 이후.

btnSave_Click 이벤트가 발생하는 경우 전에 사용자 컨트롤에 사용자 데이터를로드합니까?

답변

2

아니요, 이벤트 발생시 변경할 방법이 없습니다. 하지만 사용자 로딩 코드를 Bind 메소드에 넣고 btnSave_Click 메소드에서 호출 할 수 있습니다. leftNav 사용자 컨트롤

:

public void btnSave_Click(object sender, EventArgs e) 
{ 
    //Do save work 
    leftNav.BindUserInfo(); 
} 
: 페이지

public void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostback) 
    { 
     BindUserInfo(); 
    } 
} 

public void BindUserInfo() 
{ 
    //Binding code here 
} 

관련 문제