2016-11-12 12 views
0

질문이 있는데 합리적인 검색을 수행하고 질문을 해결하기위한 적절한 용어를 찾을 수 없습니다.Webusercontrols의 등록 정보

페이지를 만들 때 어떤 시점에서 WebUserControl을 만들고 state = "true"(lables 텍스트처럼)와 같은 것을 HTML 태그 안에 연기해야합니다. 페이지가로드됩니다. 해당 컨트롤이 나중에 코드에서 편집되는지 여부입니다. 다음과 같이

<MyControls:Teste Id="aaa" runat="server" state="false"/> 

테스트 제어 코드는 다음에

때마다 페이지를 반환 :

public partial class WebUserControls_WUC_Tect : System.Web.UI.UserControl 
{ 
    private static bool state ; 
    public bool State 
    { 
     get { return state ; } 
     set { state = value; } 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 

문제 (이 컨트롤의 HTML 페이지가 비어 있습니다, 그것은 단지 헤더가) 서버에로드되고 다시로드되면 상태 변수는 전달 된 초기 상태에 따라 항상 false 또는 true로 설정됩니다.이 변수는 페이지 시작 부분에 한 번만로드 한 다음 codebeind에 의해서만 변경 될 수 있습니다.

귀하의 제안에 감사드립니다. 패트릭 베이가가

답변

0

당신은 속성 값을 저장하기 위해의 ViewState를 사용할 필요가

인사가 저장 영구 값을 유지합니다.

public partial class WebUserControls_WUC_Tect : System.Web.UI.UserControl 
{ 
    private static bool state ; 
    public bool State 
    { 
     get 
     { 
     if (ViewState["MyState"] == null) 
     { 
      ViewState["MyState"] = false; 
     } 
     return (bool)ViewState["MyState"]; 
     } 
     set 
     { 
     ViewState["MyState"] = value; 
     } 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
}