webForumDet fria alternativet

AlternatingItemTemplate

5 svar · 202 visningar · startad av henrikjohansson

henrikjohanssonMedlem sedan maj 2000360 inlägg
#1

Jag vill att ItemTemplate och AlternatingItemTemplate i en repeater skall vara idenstiska förutom en sak... måste jag då skriva i båda eller kan man lösa det på något smidigare sätt.. är lite väl jobbigt att behöva ändra på 2 ställen om man vill ändra något senare.

Kan man inte typ använda sig av en ifsats eller dyl i itemtemplate för att kolla om det är jämnt då skriva ut lite extra kod om den är jämn rad?

NETworkMedlem sedan juni 20011 732 inlägg
#2

Måste du använda en repeater? I en datagrid/list har du betydligt fler möjligheter att påverka utseendet med styleattribut på själva kontrollen (exempelvis alternatingitemstyle-xyz) och då behöver du inte några templates.

I en repeater finns det bara templates som i sig inte har några attribut, all kod måste skrivas. Du kan säkert göra en ifsats där på något sätt, men då är du tillbaka i gammal asp-smörja och det är helt fel approach. Utgå från att allt går att göra i koden, undvik in i det sista en massa logik i presentationslagret. Det är inte bara fult, det är långsamt också eftersom det är "latebound".

Exakt vad är det du vill göra?

henrikjohanssonMedlem sedan maj 2000360 inlägg
#3

Jo jag skall lista ut anställda och då skall det vara så att det står lite information om personen och en bild på högersidan.. och på nästa så skall bilden vara på vänstersidan osv.

NETworkMedlem sedan juni 20011 732 inlägg
#4

Då tycker jag nog ändå att det verkar vara klart enklast att använda en alternativ template faktiskt, kan inte se att du skulle tjäna speciellt mycket på att låta en if-sats möblera om bland html-taggarna... :)

henrikjohanssonMedlem sedan maj 2000360 inlägg
#5

Ok jag slänger iin lite kod

			<asp:repeater id="repPersonal" runat="server">
				<ItemTemplate>
					<tr>
						<td>
							<span class="PersonalNamn">
								<%#fixtext(Container.dataitem("EfterNamn") & ", " & Container.dataitem("ForNamn"),true)%>
							</span>
							<br>
							<span class="PersonalTitel">
								<%#Fixtext(Container.dataitem("Titel"),true)%>
							</span>
							<br>
							<span class="Personal"><a href="Mail" class="Personal">
									<%#Fixtext(Container.dataitem("email"),true)%>
								</a></span>
							<br>
							<span class="Personal">
								<%#fixtext(Container.dataitem("telnr"),true)%>
							</span>
							<br>
							<br>
							<span class="Personal">
								<%#fixtext(Container.dataitem("Texten"),true)%>
							</span>
						</td>
						<td width="100">
							<%#Bild("personal/" & Container.dataitem("bild"),"")%>
						</td>
					</tr>
				</ItemTemplate>
				<HeaderTemplate>
					<table width="100%">
				</HeaderTemplate>
				<FooterTemplate>
					</table>
				</FooterTemplate>
				<SeparatorTemplate>
					<tr>
						<td height="4" style="BACKGROUND-IMAGE: url(img/dotted.gif); BACKGROUND-REPEAT: repeat-x" colspan="2">&nbsp;</td>
					</tr>
				</SeparatorTemplate>
			</asp:repeater>

Det är lite jobbigt att köra alternativ på detta iom att om jag måste ändra något så måste jag ändra på två ställen.. Men jag skall läsa på lite om datalist nu så får vi se hur det blir sedan

henrikjohanssonMedlem sedan maj 2000360 inlägg
#6

hmm jag tycker att en datalist är ganska lik en repeater.. det enda som skiljer är att man kan sätta styles vilket är användbart men det hjälper inte mig i just detta fallet.. Så det finns inget bättre sätt än att kopiera all kod till alternativtemplate och göra den lilla ändring som jag vill ha? nä antagligen inte eftersom jag såg ditt inlägg innan nu efter jag postade detta :D

127 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)