2011-02-16 3 views
1

동적으로로드 된 컨트롤의 이벤트에 문제가 있습니다. 여기동적으로로드 된 컨트롤의 Viewstate 문제

내가 컨트롤을로드하고 어떻게 : I 버튼 이벤트가 실행 한 후 업데이트해야하기 때문에

protected void Page_Load(object sender, EventArgs e) 
{ 
    LoadSubPageEditTemplate(); 
} 

protected void LoadSubPageEditTemplate() 
{ 
     pnlPageTemplate.Controls.Clear(); 
     BaseOfferAdmin adminControl = (BaseOfferAdmin)this.LoadControl("~/Controls/SingleOfferAdmin.ascx");       
     if (adminControl != null) 
     { 
      adminControl.ID = "Control_ID" 
      pnlPageTemplate.Controls.Add(adminControl); 
     } 
    } 
} 

LoadSubPageEditTemplate()는 또한 페이지에 버튼 이벤트에서 발생합니다.

컨트롤이 완벽하게로드됩니다. 기본 단추로 테스트하고 포스트 백이 예상대로 실행됩니다. 그러나, 나는 CheckBoxes로 이상한 결과를 얻고있다.

<asp:CheckBox runat="server" ID="cbOptionalAction" Text="CheckBox" AutoPostBack="true" OnCheckedChanged="cbOptionalAction_CheckChanged" /> 

CheckedChanged 이벤트 같아요 확인란이 선택된 경우에만 화재, 내 컨트롤의 viewstate가 일부 문제가있는 것입니다. 페이지에 여러 개의 체크 박스가 있고 포스트 백을 만드는 경우 체크 된 각 체크 박스에 대해 checkchanged 이벤트가 발생합니다.

나를 도와 주려고 시간을내어 주신 분께 감사드립니다.

이그 너스는

+0

LoadSubPageEditTemplate()을 호출하려고 했습니까; Page_Load 대신 Page_Init 이벤트에? Page_Init은 동적 컨트롤을 생성하는 가장 좋은 장소로 간주됩니다. 이 관련 문서가 도움이 될 수 있습니다. http://www.singingeels.com/Articles/Dynamically_Created_Controls_in_ASPNET.aspx – kaushalparik27

답변

-2

페이지를 다시 게시 아닌 경우에만 컨트롤을로드하십시오.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
     {   
      LoadSubPageEditTemplate(); 
     } 
} 
+0

사용자 컨트롤의 포스트 백이 페이지에서 다시 추가되어야 할 때 작동하지 않습니다. 포스트 백, 포스트 백 후에 컨트롤이 사라졌습니다. – tribe84

관련 문제