2012-04-16 4 views
1

사용자 정의 컨트롤을 폼보기 항목 템플릿에 추가했지만 사용자 정의 컨트롤에 public 속성을 추가 했으므로 속성을 설정하는 방법을 알 수 없습니다. 나는 다음을 시도했다 :FormView의 Public 속성을 사용하는 사용자 컨트롤

<uc1:OfacControl id="OfacControl1" runat="server" AssetEvictionId='<%# Bind("AssetEvictionId") %>' /> 

그러나 값은 올바르게 설정되지 않는다.

var assetEvictionIdHiddenField = (HiddenField)oFormView.FindControl("AssetEvictionIdHiddenField"); 
var OfacControl1 = (Ofac)oFormView.FindControl("OfacControl1"); 

if (OfacControl1 != null && assetEvictionIdHiddenField != null) 
    OfacControl1.AssetEvictionId = Convert.ToInt32(assetEvictionIdHiddenField.Value); 

이 중 하나가 작동하지 않습니다

나는 또한 이렇게 같이 사전 렌더링 방식의 폼의 코드 숨김에서 그 일을 시도했습니다.

타이밍 문제인 것처럼 보입니다. 컨트롤이 값이 설정되는 것과 다른 시간에 렌더링되는 것 같습니다. 바인드 구문이 작동하지 않고 뒤에 코드를 사용해야하는 경우 어떤 양식보기 이벤트를 사용하여 값을 설정해야합니다. 또한 OnItemCreated 이벤트를 시도했습니다. 이것도 작동하지 않았다.

답변

1

잘못된 위치에 컨트롤을 설정하려는 것 같습니다. Init에 설정해야합니다. 다음

ASP.NET Page Life Cycle Overview 상태 : 모든 컨트롤이 초기화되었고, 어떤 피부 설정을 적용한 이후에 발생

Init

. 페이지의 Init 이벤트 전에 Init 이벤트가 발생합니다. 이 이벤트를 사용하여 컨트롤 속성을 읽거나 초기화합니다.