효과: 예를 들어 장비 관리 시스템에서 장비 번호를 어딘가에 입력해야 하지만 장비 번호는 일반적으로 기억하기 어렵고 기억할 수 있는 것은 부서와 위치에 있는 장비뿐입니다. 따라서 텍스트 상자 옆에 버튼을 추가하려고 합니다. 클릭하면 장치 번호와 장치의 다양한 세부 정보를 비교하는 표가 나타납니다. 위치에서 이 레코드를 두 번 클릭하면 장치 번호가 채워집니다. 올라갔습니다.
구현 프로세스:
상위 페이지에서 새 창을 여는 자바스크립트 함수는 다음과 같습니다.
함수 openpage(htmlurl)
{
var newwin=window.open(htmlurl,"newWin","toolbar=no,location=no,directories=no,status=no,scrollbars=yes,menubar=no,
크기 조정 가능=예, 상단=100, 왼쪽=200, 너비=650, 높이=300");
newwin.focus();
거짓을 반환;
}
</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();";
if (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을 통해 새 페이지를 엽니다. 두 페이지 사이에는 상위-하위 관계가 있습니다. 하위 페이지는 opener를 통해 상위 페이지(상위 페이지에 작성된 컨트롤 및 js 함수)에 접근할 수 있고, 상위 페이지도 sub를 통해 하위 페이지에 접근할 수 있습니다. 예를 들어 상위 페이지에 js 함수 sayhello()가 있는 경우 하위 페이지에서 이를 호출하려면 opener.sayhello()만 필요합니다.
소량의 Javascript 코드만 사용하고 이를 asp.net과 결합하면 매우 유용한 효과를 얻을 수 있습니다.