Fügen Sie den Javascript-Code wie folgt im Kopf hinzu:
<script lang=javascript>
function sel(i) // Nach dem Bewegen der Maus nach oben ausführen
{
eval(i+".style.background='#CCCC66'"); // Farbe der Zeile ändern
eval(i+".style.cursor='hand'"); // Wenn die Maus nach oben bewegt wird, ändert sie sich in die Form einer Hand
}
function unsel(i) // Wird ausgeführt, nachdem die Maus gegangen ist
{
eval(i+".style.background=''");
}
Funktion clicktr(i)
{
eval(i+".style.background=''");
window.open("Edit.aspx?param="+i,"Modify","height=490,width=710,resizable=no,scrollbars=no,status=no,toolbar=no,
menubar=no,location=no,left=50,top=50");
}
</script>
Im ItemDataBound-Ereignis des DataGrid (tritt auf, wenn Daten gebunden sind):
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType != ListItemType.Header)
{
string ID = e.Item.Cells[0].Text; // Die erste Spalte hier ist der ID-Wert in der Datenbindung (zur Vereinfachung der Parameterübergabe auf der geänderten Seite können Sie diese auch hinzufügen, wenn mehrere Parameter vorhanden sind nach Bedarf!)
e.Item.Attributes.Add("id",ID);
e.Item.Attributes.Add("onmouseover","sel(" + ID+ ")");
e.Item.Attributes.Add("onmouseout", "unsel(" + ID+ ")");
e.Item.Attributes.Add("onclick", "clicktr(" + ID+")");
}
}
//**************************** Beenden******************* ***************************//
Der obige Ansatz weist jedoch Unannehmlichkeiten auf, wenn Sie dem DataGrid eine Vorlagenspalte hinzufügen kann verwendet werden, um Benutzern Auswahlvorgänge bereitzustellen (z. B. das Löschen von Auswahlen),
Zu diesem Zeitpunkt führt die Verwendung der oben genannten Methode dazu, dass jedes Mal, wenn Sie die CheckBox auswählen, ein neues Fenster angezeigt wird (das Onclick-Ereignis wird ausgelöst).
Eine schlechte Lösung:
Ändern Sie die ursprünglichen zeilenbasierten Attribute in spaltenbasierte Attribute Spalte, alle Fügen Sie allen Spalten Attribute hinzu.
Wenn die Vorlage beispielsweise in Spalte 6 aufgeführt ist, können Sie die CS-Datei wie folgt ändern:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType != ListItemType.Header)
{
string bm = e.Item.Cells[0].Text;
for(int i=0;i<5;i++)
{
e.Item.Cells[i].Attributes.Add("id","a"+i.ToString()+bm);
e.Item.Cells[i].Attributes.Add("onmouseover","sel(" +i.ToString()+","+ bm + ")");
e.Item.Cells[i].Attributes.Add("onmouseout", "unsel(" +i.ToString()+","+ bm + ")");
e.Item.Cells[i].Attributes.Add("onclick", "clicktr(" + bm +")");
}
}
}
Im Javascript-Code:
Funktion sel(i,ID)
{
for(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.background='#CCCC66'"); eval("a"+j.toString()+ID+".style.cursor='hand'" );
}
}
Funktion unsel(i,ID)
{
for(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.background=''");
}
}
Funktion clicktr(i)
{
for(var j=0;j<5;j++)
{
eval("a"+j.toString()+i+".style.background=''");
window.open("Edit.aspx?param="+i,"Modify","height=490,width=710,resizable=no,scrollbars=no,status=no,toolbar=no,
menubar=no,location=no,left=50,top=50");
}
}