마크 업은 다음과 같습니다viewstate가 문제
<form id="form1" runat="server">
<asp:TextBox ID="txt1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Do Something" />
</form>
코드 뒤에 다음과 같습니다
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
txt1.Visible = false;
Form.Controls.AddAt(0, new TextBox() { ID = "blah", Text = "blah", EnableViewState = true });
}
문제는 그 나는 버튼, txt1을 클릭하면 비록 그것이 숨겨진 것에 대한 가시성을 설정했다 할지라도 다시 볼 수있게됩니다. Viewstate는 숨김 상태로 유지해야하지만 어떤 이유로 인해 표시되지 않습니다.
중요 :이 문제는 Form.Controls.AddAt를 사용하여 컨트롤을 동적으로 추가 할 때만 발생합니다. 이렇게하면 동적으로 추가 된 컨트롤 뒤에 모든 컨트롤에 대한 viewstate가 엉망이되는 것 같습니다.
왜 그런가? 또는 페이지의 모든 후속 컨트롤에 대해 viewstate를 엉망으로 만들지 않고 AddAt를 사용하는 방법?
당신이 초기화에 텍스트 상자를 추가 할 수 있습니다
페이지 수명주기와의 ViewState에 대한 추가 정보를 원하시면 여기를 참조하십시오? – Stilgar
폼에 PlaceHolder 컨트롤을 추가하고 AddAt를 사용하는 대신 컨트롤에 컨트롤을 추가하면 어떻게됩니까? – Stilgar