J'utilise Je suis curieux de savoir que dans Est-ce possible? P> Code actuel: p> vs2005 C # Server-côté code> codage.
Version VS2005 code>, est-il possible de
en surbrillance code> une ligne dans une grille à grille quand une condition est remplie? Par exemple. Si la colonne
en surbrillance en rouge code>. P>
protected void GridView1_OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// do your stuffs here, for example if column risk is your third column:
if (e.Row.Cells[3].Text == "H")
{
e.Row.BackColor = Color.Red;
}
}
}
5 Réponses :
Oui, Ajouter Dans le code derrière, avez-vous: P> OnRowDatabound = "Yourgridview_rowDatabound" code> à votre gridview. Cet événement est déclenché pour chaque rangée de grilleview.
public void yourGridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// do your stuffs here, for example if column risk is your third column:
if (e.Row.Cells[2].Text == "high")
{
e.Row.BackColor = Color.Red;
}
}
}
Vérifiez votre E.ROW.Cells [3] .text est vraiment égal à "HIGH" (cas corrects, pas d'espaces supplémentaires, etc.). Vous pouvez utiliser Response.write ("-" + E.ROW.Cells [3] .text + "-") Pour afficher les valeurs.
Il est correct, en haut de ma page est plein du texte de ma troisième colonne.
Essayez temporairement désactiver "si (e.row.cells [3] .text ==" h ") {}" et juste laisser "E.ROW.BackColor = Color.red;". La couleur change-t-elle maintenant?
Oui, toute la table devient rouge.
Ensuite, cela signifie "si (e.row.cells [3] .Text ==" h ")" ne revient jamais vrai. Je ne vois pas que vos données ne peuvent donc pas dire pourquoi elles ne correspondent pas mais que vous devriez pouvoir identifier toute différence entre les deux.
Vous devez vous abonner à l'événement code> Rowdatabound CODE> de la grille et saisissez la ligne de la ligne qui a votre colonne mentionnant le risque comme élevé, puis définissez le msdn Formatage de la grille basée sur la grille sur les données sous-jacentes p> p> Backcolor code> de la ligne à votre Soulignant la couleur de la couleur
Utilisez l'événement Rowdatabound. Dans cet événement, vous pourrez ajouter le CSS en fonction de votre condition
void GridView_RowDataBound(Object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow) { // Logic for High if(e.Row.Cells[1].Text > 100) //set color e.Row.Attributes.Add("style", "this.style.backgroundColor = '#FFFFFF';"); } }
in Rowdatabound code> Essayez:
if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.BackColor = Color.Yellow; Label l1 = (Label)e.Row.FindControl("lblage"); if(Convert.ToInt32( l1.Text)>=30) { e.Row.BackColor = Color.Tomato; } }
Il serait utile que vous ayez ajouté une description de votre idée, pas de code uni.
Non, ondatabound ne se fait tirer une fois ce que vous voulez. Cela montre-t-il une erreur lorsque vous essayez ONROWDABOND?
Assurez-vous que votre méthode «GridView_onRowAbound» est définie sur «Public».
@Ruihao vérifier ma solution, je pense que le
.text code> serait plus applicable dans l'événement de données de données plutôt que dans
rowdatabound code> car la valeur est réellement contenue par un contrôle et non la cellule afin
dataxier.eval code> devrait fonctionner pour vous