0

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

4

2 回答 2

0

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

于 2010-01-21T20:02:41.650 回答
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%>');

}

您可能需要调整上面的代码,但要点是父页面控件最终会等到子页面完全加载后再完成。如果你想使用标签之类的,你可以在 div 上使用 InnerHTML 属性。

于 2010-01-24T17:40:10.300 回答