Эффект: Например, в системе управления оборудованием номер оборудования нужно где-то заполнить, но номер оборудования обычно сложно запомнить, и все, что можно запомнить, — это оборудование, в каком отделе и местоположении. Поэтому мы хотим добавить кнопку рядом с текстовым полем. После нажатия появится дополнительная страница. Там есть таблица, сравнивающая номер устройства и различные сведения об устройстве. Мне нужно только найти устройство на основе. местоположение, дважды щелкните эту запись, и номер устройства заполнится. Пошел вверх.
Процесс реализации:
Функция javascript для открытия нового окна на родительской странице:
функция openpage(htmlurl)
{
var newwin=window.open(htmlurl,"newWin","toolbar=no,location=no,directory=no,status=no,scrollbars=yes,menubar=no,
изменяемый размер = да, сверху = 100, слева = 200, ширина = 650, высота = 300");
новыйвин.фокус();
вернуть ложь;
}
</script>Кнопка «Позвонить»:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return openpage('child.aspx');"/>
Подстраница привязывает источник данных GridView и записывает следующий код в событие RowDataBound:
protected void GridView1_RowDataBound (отправитель объекта, GridViewRowEventArgs e)
{
string s = "window.opener.document.getElementById('textbox1').value='" + e.Row.Cells[1].Text + "'; window.close();";
если (e.Row.RowType != DataControlRowType.Header)
{
e.Row.Attributes.Add("ondblclick", s);//Выбор двойным щелчком мыши
//При наведении курсора мыши устанавливаем цвет линии на "" и сохраняем исходный цвет фона
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#C0C0FF';this.style.cursor='hand';");
//Восстанавливаем цвет фона строки при перемещении мыши
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
}
}Объяснение: Откройте новую страницу через window.open. Между двумя страницами существует связь родитель-потомок. Дочерняя страница может получить доступ к родительской странице (элементы управления и функции js, написанные на родительской странице) через opener, а родительская страница также может получить доступ к дочерней странице через sub. Например, если на родительской странице есть js-функцияsayhello(), вам понадобится только opener.sayhello(), чтобы вызвать ее на дочерней странице.
Используя лишь небольшой объем Javascript-кода и комбинируя его с asp.net, достигается очень полезный эффект.