2010-01-21 59 views
0

我有一个麻烦的任务。我有一个页面包含在一个外框内,在外框是一个用户控件,我需要从包含页面中填充一些数据。问题是在我能获得所需数据之前渲染外框。我怎样才能做到这一点?从包含框填充用户控件

回答

0

我会用JavaScript来实现这一点。您可以在父页面的JavaScript中放置一个Populate方法,并使用您想要的任何签名。

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%>'); 

} 

您可能需要调整上面的代码,但要点是,父页面控件将结束等待,直到它完成之后的子页面完全加载。如果你想使用标签和whatnot,你可以在div上使用InnerHTML属性。

0

难道你不能只是在你的用户控件中创建一个公共的Populate子,并在加载需要的数据时从外部框架调用它? Populate会将数据作为参数并使用此数据填充控件。