Ajoutez le code javascript dans l'en-tête comme suit :
<script lang=javascript>
function sel(i) // Exécuté après avoir déplacé la souris vers le haut
{
eval(i+".style.background='#CCCC66'"); // Change la couleur de la ligne
eval(i+".style.cursor='hand'"); // Lorsque la souris est déplacée vers le haut, elle prend la forme d'une main
}
function unsel(i) // Exécuté après le départ de la souris
{
eval(i+".style.background=''");
}
fonction clicktr(i)
{
eval(i+".style.background=''");
window.open("Edit.aspx?param="+i,"Modify","height=490,width=710,resizing=no,scrollbars=no,status=no,toolbar=no,
barre de menu=non,emplacement=non,gauche=50,top=50");
}
</script>
Dans l'événement ItemDataBound de DataGrid (se produit lorsque les données sont liées) :
private void DataGrid1_ItemDataBound (expéditeur d'objet, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType != ListItemType.Header)
{
string ID = e.Item.Cells[0].Text; // La première colonne ici est la valeur ID dans la liaison de données (pour faciliter la transmission des paramètres dans la page modifiée, s'il y a plusieurs paramètres, vous pouvez également les ajouter au besoin !)
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+")");
}
}
//**************************** Finition******************* ***************************//
Cependant, l'approche ci-dessus présente des inconvénients si vous ajoutez une colonne de modèle au DataGrid. peut être utilisé pour fournir aux utilisateurs des opérations de sélection (telles que la suppression de sélections),
À l'heure actuelle, l'utilisation de la méthode ci-dessus fera apparaître une nouvelle fenêtre à chaque fois que vous sélectionnez le CheckBox (l'événement onclick est déclenché).
Une mauvaise solution :
remplacez les attributs d'origine basés sur les lignes par des attributs basés sur les colonnes, à l'exception du modèle. column, all Ajoutez des attributs à toutes les colonnes.
Par exemple, si le modèle est répertorié dans la colonne 6, vous pouvez modifier le fichier cs comme ceci
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType != ListItemType.Header)
{
chaîne bm = e.Item.Cells[0].Text;
pour(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 +")");
}
}
}
En code javascript :
fonction sel(i,ID)
{
pour(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.background='#CCCC66'"); eval("a"+j.toString()+ID+".style.cursor='hand'" );
}
}
fonction unsel(i,ID)
{
pour(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.background=''");
}
}
fonction clicktr(i)
{
pour(var j=0;j<5;j++)
{
eval("a"+j.toString()+i+".style.background=''");
window.open("Edit.aspx?param="+i,"Modify","height=490,width=710,resizing=no,scrollbars=no,status=no,toolbar=no,
barre de menu=non,emplacement=non,gauche=50,top=50");
}
}