2012-01-27 2 views
0

하루 종일 스케쥴러에 학생들에게 시간 간격을 할당하는 웹 응용 프로그램이 있습니다.동적으로로드 할 때 사용자 컨트롤 버튼 클릭 이벤트 호출

그래서이 사용자 컨트롤이 TimePeriod로 있고이 컨트롤이 웹 페이지에 동적으로로드됩니다.

내 사용자 정의 컨트롤에 두 개의 텍스트 상자와 하나의 버튼 컨트롤이 포함되어 있으며 해당 버튼의 클릭 이벤트를 찾아야합니다.이 버튼은 두 개의 관련 텍스트 상자 값을 가져와야합니다. 그러나 나는 클릭 이벤트를 찾을 수 없습니다. 이 버튼.

해당 사용자 컨트롤은 해당 페이지의 제출 버튼 이벤트시 다른 페이지에로드됩니다. 하지만 페이지에 대한 사용자 컨트롤의 수는 이렇게 다양합니다. 사용자 컨트롤 목록을 동적으로 만드는 코드가 있습니다.

내가 10까지 j 값을 설정 한 예를 들어 목적을 위해

, 실제로 변화는 다음과 같습니다

for (int j = 1; j < 10; j++) 
{ 
    TableRow row = new TableRow(); 
    TableCell cell = new TableCell(); 

    cell.Text = j.ToString(); 
    cell.Height = 10; 
    cell.Width = 75; 
    row.Height = 10; 
    cell.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray); 
    //cell.BackColor = #FFFFFF; 
    row.Cells.Add(cell); 

    TimePeriod ib = (TimePeriod)LoadControl("TimePeriod.ascx"); 
    TableCell cell1 = new TableCell(); 
    cell1.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray); 
     cell1.Controls.Add(ib); 
     row.Cells.Add(cell1); 

     tbl1.Rows.Add(row); 
    cell = null; row = null; 
} 

답변

2

당신은 이벤트가 페이지의 각 포스트 백에 추가되었는지 확인해야합니다. 첫 번째 페이지로드 (즉, !Page.IsPostBack)로 제한하지 마세요.

또한 이 아닌 Page_Load 또는 그 밖의 곳의 동적 컨트롤을 구성하고로드해야합니다. 그것은 흔한 실수입니다. Page_Load 또는 그 밖의 다른 곳에서 구성하는 경우 ViewState에 추가되지 않아 문제가 발생할 수 있습니다.

관련 문제