Auswirkung: Beispielsweise muss in einem Geräteverwaltungssystem die Gerätenummer irgendwo eingegeben werden, aber die Gerätenummer ist normalerweise schwer zu merken, und man kann sich nur merken, in welcher Abteilung und an welchem Standort sich das Gerät befindet. Daher möchten wir neben dem Textfeld eine Schaltfläche hinzufügen. Nach dem Klicken wird eine Tabelle angezeigt, in der die Gerätenummer und verschiedene Details des Geräts verglichen werden Wenn Sie den Speicherort angeben, doppelklicken Sie auf diesen Datensatz. Die Gerätenummer wird ausgefüllt. Nach oben gegangen.
Implementierungsprozess:
Die Javascript-Funktion zum Öffnen eines neuen Fensters auf der übergeordneten Seite lautet:
Funktion openpage(htmlurl)
{
var newwin=window.open(htmlurl,"newWin",toolbar=no,location=no,directories=no,status=no,scrollbars=yes,menubar=no,
resizable=yes,top=100,left=200,width=650,height=300");
newwin.focus();
return false;
}
</script>Anrufschaltfläche:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return openpage('child.aspx');"/>
Die Unterseite bindet die Datenquelle der Gridview und schreibt den folgenden Code in ihr RowDataBound-Ereignis:
protected void GridView1_RowDataBound(object sender, 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);//Doppelklick-Auswahl
//Wenn die Maus darüber bewegt wird, setzen Sie die Farbe der Linie auf „“ und speichern Sie die ursprüngliche Hintergrundfarbe
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#C0C0FF';this.style.cursor='hand';");
//Stellt die Hintergrundfarbe der Zeile wieder her, wenn die Maus wegbewegt wird
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
}
}Erklärung: Öffnen Sie eine neue Seite über window.open. Zwischen den beiden Seiten besteht eine Eltern-Kind-Beziehung. Die untergeordnete Seite kann über den Opener auf die übergeordnete Seite (Steuerelemente und auf der übergeordneten Seite geschriebene JS-Funktionen) zugreifen, und die übergeordnete Seite kann auch über sub auf die untergeordnete Seite zugreifen. Wenn es beispielsweise auf der übergeordneten Seite eine js-Funktion sayhello() gibt, benötigen Sie nur opener.sayhello(), um sie auf der untergeordneten Seite aufzurufen.
Mit nur wenig Javascript-Code und der Kombination mit asp.net wird ein sehr nützlicher Effekt erzielt.