从包含框架填充用户控件

时间:2010-01-21 14:09:31

标签: asp.net vb.net frames

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我会使用JavaScript来完成此任务。您可以在父页面中使用任何签名将JavaScript填充到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属性。