2009-04-21 3 views
1

페이지의 테이블 컨트롤에 대해 동적으로 행과 셀을 생성하는 ASP.NET 코드가 있습니다.동적으로 생성 된 컨트롤에서 FindControl 사용

각 셀의 ID를 구체적으로 설정했지만 실제로 FindControl을 찾는 데 문제가 있습니다. 여기

내가 세포를 만드는 데 사용하는 코드입니다 : 그냥 그 아래

tbc = New TableCell 
tbr.Cells.Add(tbc) 
tbc.ID = String.Format("tc_{0}-{1}-{2}", curStartDate.Day, curStartDate.Month, curStartDate.Year) 

을, 나는 다음과 컨트롤을 찾아보십시오 : 나는 선을 교환 시도

Dim ctlName As String = String.Format("tc_{0}-{1}-{2}", curStartDate.Day, curStartDate.Month, curStartDate.Year) 
Dim ctl As Control = tblAllocations.FindControl(ctlName) 

그 셀을 TableRow의 Cells 컬렉션에 추가하는 선으로 ID를 선언하고이를 사용 가능하게 만듭니다. 하지만 내 응용 프로그램을 통해 위의 순서대로 문을 있고 그들은 잘 작동합니다 (FindControl 올바른 ID 가진 컨트롤을 찾을 수 있습니다).

실종 신고 된 것이 있습니까?

답변

1

"바로 아래"라고 말하면 tbr을 tblAllocations.Rows에 추가 했습니까? 그렇지 않으면 그 이유가 될 수 없습니다.

+0

예, 확실히 추가되었습니다. 페이지의 출력에서 ​​행과 셀을 볼 수 있습니다. 셀의 ID도 HTML로 출력됩니다. –

+0

필자가 FindControl을 호출 할 때 행이 테이블에 추가되었다는 것을 의미합니까? tblAllocations.FindControl이 셀을 찾을 때까지 tblAllocations.Rows.Add (tbr)가 발생해야합니다. – AnthonyWJones

+0

올바르게 추가되었습니다. 나는 문제를 좁혔다 고 생각한다. 컨트롤을 만들기 전에 DataBind 메서드를 호출하는 DropDownList가 있습니다. DataBind에 대한 호출을 제거하면 모든 것이 제대로 작동합니다. 정말 이상합니다. –