ผลกระทบ: ตัวอย่างเช่น ในระบบการจัดการอุปกรณ์ ต้องกรอกหมายเลขอุปกรณ์ในที่ใดที่หนึ่ง แต่โดยปกติแล้วหมายเลขอุปกรณ์จะจำได้ยาก และสิ่งเดียวที่อาจจำได้คืออุปกรณ์ที่แผนกและที่ตั้ง ดังนั้นเราจึงต้องการเพิ่มปุ่มถัดจากกล่องข้อความ หลังจากคลิกแล้ว จะมีหน้าย่อยปรากฏขึ้นมา มีตารางเปรียบเทียบหมายเลขอุปกรณ์และรายละเอียดต่างๆ ของอุปกรณ์ ฉันเพียงต้องค้นหาอุปกรณ์ตาม ตำแหน่ง ดับเบิลคลิกบันทึกนี้ และหมายเลขอุปกรณ์จะถูกกรอก ขึ้นไป
กระบวนการดำเนินการ:
ฟังก์ชันจาวาสคริปต์เพื่อเปิดหน้าต่างใหม่บนเพจหลักคือ:
ฟังก์ชั่น 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.โฟกัส();
กลับเท็จ;
-
</script>ปุ่มโทรเข้า:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return openpage('child.aspx');"/>
หน้าย่อยผูกแหล่งข้อมูลของ gridview และเขียนโค้ดต่อไปนี้ในเหตุการณ์ RowDataBound:
โมฆะที่ได้รับการป้องกัน 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.พื้นหลังColor;this.style.พื้นหลังสี='#C0C0FF';this.style.cursor='hand';");
//คืนค่าสีพื้นหลังของแถวเมื่อเลื่อนเมาส์ออกไป
e.Row.Attributes.Add("onmouseout", "this.style.wallpaperColor=currentcolor");
-
}คำอธิบาย: เปิดหน้าใหม่ผ่าน window.open มีความสัมพันธ์ระหว่างสองเพจ หน้าย่อยสามารถเข้าถึงหน้าหลัก (การควบคุมและฟังก์ชัน js ที่เขียนบนหน้าหลัก) ผ่านตัวเปิด และหน้าหลักยังสามารถเข้าถึงหน้าย่อยผ่านทางย่อย ตัวอย่างเช่น หากมีฟังก์ชัน js sayhello() ในหน้าหลัก คุณเพียงต้องใช้ opener.sayhello() เท่านั้นจึงจะสามารถเรียกฟังก์ชันนั้นในหน้าย่อยได้
การใช้โค้ด Javascript เพียงเล็กน้อยและรวมเข้ากับ asp.net จะให้ผลลัพธ์ที่มีประโยชน์มาก