2010-01-21 3 views
0

문제가 있습니다. 나는 바깥 쪽 프레임에 페이지를 가지고 있는데, 바깥 쪽 프레임에는 포함 된 페이지 내에서 어떤 데이터로 채울 필요가있는 사용자 정의 컨트롤이있다. 문제는 필요한 데이터를 확보하기 전에 외부 프레임이 렌더링된다는 것입니다. 내가 어떻게이 일을 할 수 있니?포함 된 프레임에서 사용자 정의 컨트롤 채우기

답변

0

이 작업을 수행하는 데 JavaScript를 사용합니다. 상위 페이지의 Populate 메서드를 JavaScript에 넣을 수 있습니다.

function PopulateControls(param1, param2, param3) 
{ 
    document.getElementById('<%=this.Control1.ClientID%>');.value = param1; 
    document.getElementById('<%=this.Control2.ClientID%>');.value = param2; 
    document.getElementById('<%=this.Control3.ClientID%>');.value = param3; 
} 

그런 다음 하위 프레임에서 페이지에 JavaScript가 내장되어 다시 전달되도록하십시오.

window.onload=SendToParent; 

function SendToParent() 
{ 
    window.opener.PopulateControls('<%=this.Field1.ClientID%>','<%=this.Field2.ClientID%>',<%=this.Field3.ClientID%>'); 

} 

당신은 위의 코드를 조정할해야 할 수도 있지만, 요점이 완료되기 전에 하위 페이지가 완전히로드 될 때까지 상위 페이지 컨트롤이 기다리고 끝날 것입니다. 라벨과 겹침 선을 사용하려면 div에 InnerHTML 속성을 대신 사용할 수 있습니다.

0

사용자 정의 컨트롤에 public Populate sub를 만들고 필요한 데이터가로드 될 때 외부 프레임에서 호출 할 수 없습니까? Populate은 데이터를 인수로 취하여이 데이터로 컨트롤을 채 웁니다.

관련 문제