Altså, jeg har ikke prøvet eksemplet. Han siger det kun virker hvis du bruger hex-koder til at angive farverne. Derudover skal de angives i HTML-delen og IKKE i codebehind. Dvs at du skal angive farvekoderne således: <AlternatingRowStyle BackColor="#FFCC66" /> <RowStyle BackColor="#FFFBD6" /> for dit grid.
Jeg må ærlig indrømme, at kæden hopper af for mig.
Jeg har omskrevet hans kode til vb.net og lagt den i code behind filen til eventen rowcreated.
Der kommer den omtalte fejl så.
Herefter har jeg tilføjeg de to linier til HTML-delen, som du har skrevet. Herefter kommer der ingen fejl, men der sker intet på min gridview ved mouse over.
Til sidst - modsiger han ikke lidt sig selv, når han siger der skal bruges Hex koder og han så alligevel skriver 'blue' mv. i koden.
Jeg har prøvet at følge hans eksempel og det virker fint. Og ja det er os lidt forkert hvis han siger man kun skal bruge hex koder for farver, fordi man kan sagtens bruge named colors, som f.eks. "Red, Green, Black, Blue" osv.
Jeg har bare brugt en SqlDataSource og binded den til mit gridview, og det virker. Jeg tror fejlen var at du i Remove() brugte 1 som start index, hvilket jo faktisk ikke er det første tegn, men derimod nr. 2 tegn.
<ItemStyle CssClass="AdminList_Data" /> og <HeaderStyle CssClass="AdminList_Header" Width="16px" /> til.
Og herefter fungerer projektet ikke med ønsket hover effekt.. Hmm. Livet er noget bøvl.
Skyldes det, at jeg i min kode skal have skrevet noget i retning af, at css-class skal slettes ved onmouseover og sættes på igen ved onmouseout eller lignende?
Her følger min code-behind fil. (Men min code behind fil virker som sagt i mit første tilfælde - ikke i det andet)
Partial Class admin_gb Inherits System.Web.UI.Page
Protected Sub gridGB_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gridGB.RowCreated Dim onmouseoverStyle As String = "this.style.backgroundColor='#A4C5E6'" Dim onmouseoutStyle As String = "this.style.backgroundColor='#@BackColor'"
Dim rowBackColor As String = String.Empty
If (e.Row.RowType = DataControlRowType.DataRow) Then If (e.Row.RowState = DataControlRowState.Alternate) Then rowBackColor = gridGB.AlternatingRowStyle.BackColor.Name.Remove(0, 2) Else : rowBackColor = gridGB.RowStyle.BackColor.Name.Remove(0, 2) End If End If
e.Row.Attributes.Add("onmouseover", onmouseoverStyle) e.Row.Attributes.Add("onmouseout", onmouseoutStyle.Replace("@BackColor", rowBackColor)) End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.