Färg på varannan rad i en
11 svar · 453 visningar · startad av erka
<alternatingitemtemplate> borde väl fungera
Jupp, AlternatingItemStyle.BackColor finns till datalist och datagrid vet inte om det funkar på repeater.
renholm skrev:
Jupp, AlternatingItemStyle.BackColor finns till datalist och datagrid vet inte om det funkar på repeater.
Nix, finns inga styles alls på en repeater, all layout får du skriva själv i någon eller några av de fem olika templates som finns i repeatern:
HeaderTemplate
ItemTemplate (obligatorisk)
AlternatingItemTemplate
SeparatorTemplate
FooterTemplate
ok tack killar, återkommer snart ;)
Jag återkommer redan nu, kan förklara lite vad jag ska göra så kan ni kanske tippsa mig om hur jag ska gå till väga för att nå finast resultat.
Jag har en Application som startas med on session start i global.asax, den innehåller en sträng som kan se ut på följande sätt.
Jonas Andersson,2|Pelle Ljungberg,13|Anna Andersson,45|
Alltså en användarlista på vilka som är online. Jag tänkte bryta upp den till en array och bryta först vid varje | tecken, sedan vid varje , tecken. siffran är vilken UsrId som personen har i databasen.
På själva sidan har jag en tabell som är 198px bred och där vill jag lista så att det blir en rad för varje användare innehållandes en länk till användarens personliga sida
Länken ser ut så här
<a href="Anvandare_Visa.aspx?IntUsrId="& IntUsrId &" class="BrodText">"& strUserName &"</a>
Det är här jag ska ha varannan rad grå
Då återstår det bara vad ska jag lägga min användarinformation i för att kunna presentera den som jag vill. Man kanske ska skippa arrayen och slänga in dem i någon annan form av asp.net pryl? Denna grej kommer att köras på varje sida så det verkar smutt att ha den i application som en sträng dock
Tacksam!
Splitta strängen och släng in den i en datatable istället, det är lättare än att skicka in en array i din repeater när du ska ha flera olika värden för varje item.
Ok jag kom på att man kunde bygga upp en <asp:Table> i onload genom att loopa igenom och splitta arrayen, det skulle väll också fungera?
Ja, så kan du också göra, fast jag tycker nog det är lättare att bygga upp tabellen med en repeater... en smaksak kanske.
Nu fungerar det perfa, om någon vill se koden så här är den
Function OnlineUsrs
Dim A as Integer
Dim Cnt As Integer
Dim strColor As String
Dim TblOnlineRows As Array = Split(Application("OnlineUsrs"),"|")
For A = 0 To UBound(TblOnlineRows)-1
strColor = "#F2F2F2"
cnt = cnt + 1
If cnt Mod 2 = 0 Then strColor = "#FFFFFF"
Dim UsrArray As Array = Split(TblOnlineRows(a),",")
Dim R As New TableRow
Dim C As New TableCell
Dim lblMessage as New Label
lblMessage.Text = "<a href='Anvandare_Visa.aspx?IntUsrId="& UsrArray(1) &"' class='BrodTextUsrOnline'>"& UsrArray(0) &"</a>"
C.Controls.Add(lblMessage)
R.Cells.Add(C)
R.BackColor = System.Drawing.Color.FromName(strColor)
TblOnline.Rows.Add(R)
Erase UsrArray
Next A
Erase TblOnlineRows
End Function
En sak bara, istället för att göra en länk av en Label, använd en hyperlink istället, tänk som så att om du måste skriva html i koden så har du gjort något "fel"... :)