2009-06-12 7 views
1

저는 마스터 페이지와 콘텐트 플레이스 홀더를 가지고 있습니다. contentplaceholder에는 동적 링크 버튼을 삽입하는 해당 place holder를위한 place holder가 있습니다. 페이지 링크 버튼을 실행하면 페이지에 나타나지 않습니다.동적으로 링크 버튼을 추가하십시오.

for (int i = 0; i < UserCredentialsDT.Rows.Count; i++) 
{ 
    switch (Convert.ToInt32(UserCredentialsDT.Rows[i]["RoleId"])) 
    { 
     case (int)Helper.UserRole.Administrator: 
      Session[AppConstants.ROLEID] = UserCredentialsDT.Rows[i]["RoleId"]; 
      LinkButton lnkAdmin = new LinkButton(); 
      lnkAdmin.Text = "Admin"; 
      lnkAdmin.ID = "lnkAdmin" + i.ToString(); 
      PlaceHolder1.Controls.AddAt(PlaceHolder1.Controls.Count, lnkAdmin); 
      lnkAdmin.Visible = true; 
      lnkAdmin.PostBackUrl = PresentationConstant.ASPX_ADMINSETTINGS; 
      break; 
    } 
} 
+0

해당 자리 표시자는 현재 페이지와 다른 내용 자리 표시 자입니까? 그것을 참조 할 수 있습니까? 이 값을 변경하려면 Page_PreInit (object sender, EventArgs e) 이벤트 핸들러에 해당 코드에 코드를 넣어야하며 AutoEventWireUp가 true로 설정되어 있어야 작동합니다. –

답변

3

동적으로 추가하는 경우 사용할 페이지 사이클 단계를 알고 싶을 수 있습니다. 이는 다른 요인들에 따라 다를 수 있습니다. 그러나 PreInit, Init 및 Load 이벤트를 확실히 읽으십시오.

2

이 작업은 MasterPages ContentPlaceHolder에서 수행 할 수 없으며 ContentPlaceHolder는 MasterPage를 사용하는 WebForms에서 수행 할 수 있습니다. PlaceHolder 컨트롤을 ContentPlaceHolder 외부에 두는 것이 좋습니다.

MSDN에서

:

의 ContentPlaceHolder 컨트롤은 마스터 페이지의 내용에 대한 상대 영역을 정의하고, 에서 발견 관련 콘텐츠 컨트롤에서 모든 텍스트, 마크 업 및 서버 컨트롤을 렌더링 콘텐츠 페이지.

관련 문제