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