Заполнить пользовательский элемент управления из содержащего фрейма - PullRequest
0 голосов
/ 21 января 2010

У меня неприятное задание. У меня есть страница, содержащаяся во внешнем фрейме, на внешнем фрейме находится пользовательский элемент управления, который мне нужно заполнить некоторыми данными из содержащейся страницы. Проблема в том, что внешний кадр отображается до того, как я смогу получить необходимые данные. Как я могу сделать это?

Ответы [ 2 ]

0 голосов
/ 24 января 2010

Я бы использовал JavaScript для достижения этой цели. Вы можете поместить метод Populate в 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%>');

}

Возможно, вам придется настроить вышеприведенный код, но суть в том, что элементы управления родительской страницы в конечном итоге будут ожидать полной загрузки дочерней страницы, прежде чем это будет сделано. Если вы хотите использовать метки и еще много чего, вместо этого вы можете использовать свойство InnerHTML в div.

0 голосов
/ 21 января 2010

Не могли бы вы просто создать общедоступную подпрограмму Populate в своем пользовательском элементе управления и вызывать ее из внешнего фрейма при загрузке необходимых данных? Populate будет принимать данные в качестве аргументов и заполнять элемент управления этими данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...