Programming/.NET
페이지에 다음과 같이 버튼클릭에 대한 이벤트가 정의된 경우
protected void Button1_Click(object sender, EventArgs e)
{
    TextBox1.Text = "이벤트발생";//처리내용
}
<코드 1-1>

ASP.NET은 해당 이벤트를 처리하기 위하여 페이지 자체적으로 페이지를 다시 로드하여 처리하게 되는데 이걸 '포스트백'이라고 합니다.

페이지안에서 포스트백이 일어나면 페이지를 처음부터 다시 로드하게 되고 ViewState를 통하여 이전 페이지상태를 유지할 수 있도록 합니다. 다만 한가지 주의할 점은 예를 들어 아래와 같이 페이지 Load  이벤트에 TextBox1에 대한 Text 속성이 설정된 경우
protected void Page_Load(object sender, EventArgs e)
{
    TextBox1.Text = "초기화";
}
<코드 1-2>

코드 1-1에서 TextBox1에 대한 Text 변경이 일어난다면 해당 변경내용은 확인할 수 없게 됩니다. 페이지에서 포스트백이 일어나면 페이지의 Load이벤트를 거치게 되므로 이 과정에서 TextBox1의 Text값이 '이벤트발생'에서 '초기화'라는 내용으로 다시 바뀌게 되기 때문입니다.

따라서 페이지 이벤트에서 페이지가 새롭게 로드되는 경우와 포스트백이 일어나면서 로드되는 경우를 IsPostBack 속성을 사용하여 구분해 줘야 합니다.
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack) {
        TextBox1.Text = "초기화";
    }
}
<코드 1-3>

Page의 IsPostBack이 속성이 true라면 내부 이벤트에 의해 페이지가 다시 게시되는 경우이고 false라면 페이지가 포스트백이 아닌 새롭게 로드되는 경우를 의미합니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] 폴더 구조  (1) 2013.12.12
[ASP.NET] Label  (0) 2013.12.11
[ASP.NET] 빌드공급자  (0) 2013.12.10
[ASP.NET] 페이지 구조  (0) 2013.12.09
[ASP.NET] 지시문  (0) 2013.12.07
[ASP.NET] 포스트백(PostBack)  (0) 2013.12.05
0 0