ViewState는 다시 게시간에 컨트롤 속성의 상태를 유지하는 데 사용됩니다. 이를 사용하지 못하도록하면 코드 숨김 방식으로 프로그래밍 방식으로 설정 한 모든 속성이 페이지 포스트 백간에 유지되지 않습니다. 그러나 (.aspx 페이지에서) 선언적으로 모든 값을 선언하면 아무런 차이가 없습니다.
빠른 예 :
당신이 ViewState에이 영문 마크 업이 활성화 말 :
<form id="form1" runat="server">
<div>
<asp:HyperLink ID="RegisterHyperLink" runat="server" EnableViewState="true">Register</asp:HyperLink>
<br /><br />
<asp:Button ID="ButtonPostBack" runat="server" Text="Post Back" />
</div>
</form>
그리고 당신은 코드 숨김에서이 작업을 수행 :
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
RegisterHyperLink.ForeColor = System.Drawing.Color.Red;
}
}
비록 당신 생각 하이퍼 링크의 첫 번째 색상 만 빨간색으로 설정하면 하이퍼 링크는 포스트 백을 수행하는 버튼을 클릭 한 후에도 여전히 빨간색으로 유지됩니다. 이는 ViewState가 HyperLinks 속성의 값을 저장하고 다시 게시 한 후에 다시 작성하기 때문입니다.
정확히 동일한 것을 시도하지만 HyperLink에서 ViewState가 비활성화 된 상태에서 제출 버튼을 클릭하면 HyperLink가 원래 색상으로 되돌아갑니다. 이는 viewstate가 빨간색으로 설정했다는 사실을 "저장"하고 있지 않기 때문입니다. 실용적인 측면에서
당신이 일반적으로 사용하지 않도록 설정할 수 있습니다 viewstate가있는 경우 :
A) 당신은 모든 속성을 설정) 어떤 포스트 백을 B를 수행하지 않습니다 페이지 선언적
정말 viewstate가 I을 이해하려면
' d
TRULY Understanding ViewState을 읽는 것이 좋습니다.
멋진 링크 !! 나는 그것을 동료들과 나눌 것이다. – Rabid
아주 좋은 설명, 또한 OP는 이것이 받아 들여진 대답임을 표시해야합니다. – Justin
If 블록 외부에서 해당 코드를 이동하여 모든 포스트 백에 값을 설정하는 옵션 C를 잊어 버렸습니다. –