질문이 있는데 viewstate 작동 방식을 이해하지 못하기 때문일 수 있습니다. 내가 만든 사용자 정의 컨트롤에서 속성에 대한 setter에서 viewstate 변수를 설정하는 코드가 있습니다.ViewState가 포스트 백을 통해 사용자 정의 추가 사항을 유지하지 않음
public bool EditMode
{
get { return (bool)(ViewState["editMode" + this.ID] ?? false); }
set {ViewState["editMode" + this.ID] = value;}
}
버튼 클릭 이벤트 중에 editmode가 설정됩니다.
public void shippingButton_Click(object sender, EventArgs e)
{
if (((Button)sender).CommandName== "Edit")
{
ctrlShippingAddress.EditMode = true;
}
else
{
Page.Validate();
if (Page.IsValid)
{
ctrlShippingAddress.SaveAddress();
ctrlShippingAddress.EditMode = false;
}
}
}
나는 경우 내가 페이지 사이클의 정확한 지점에서 viewstate가이 추가되지 않은 페이지로드에 설정을 수동으로 시도했지만, 내가 이해로 이벤트를 렌더링 전에 발생합니다. 또한 ViewStateMode = "Enabled"를 컨트롤에 추가 한 다음 페이지를 사용하고 행운이없는 마스터 페이지에 추가하려고했습니다.
get/set의 시점에서 디버그하면 viewstate가 빈 콜렉션이라는 것을 알 수 있습니다. (이는 유지해야하는 양식 데이터를 저장하기 때문에 이해가되지 않습니다.)
감사합니다.
로 설정 될 필요가 , 을 true (분명히)로 설정해야합니다. –
이 메모를 답안으로 다시 게시 한 다음 받아 들여서 나중에이 질문을 발견하면 분명히 표시됩니다. 대답. – Jeff