2010-01-21 100 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會將數據作爲參數並使用此數據填充控件。