webForumDet fria alternativet

Repeater, ItemTemplate + indenterad kod ger oönskat mellanrum

.NET

2 svar · 446 visningar · startad av dAEk

Medlem sedan feb. 20041 816 inlägg
Frågan#1

De flesta av er har nog råkat ut för det här misstänker jag. Problemet jag har är att det läggs in white-space i den genererade HTML-koden. Ett dummy-exempel förklarar det nog lite tydligare:

<asp:repeater runat="server" ID="UserRepeater">
	<ItemTemplate>
		<asp:Literal/Label/etc />
	</ItemTemplate>
	
	<SeparatorTemplate>, </SeparatorTemplate>
</asp:repeater>

kommer att generera Foo , Bar , Baz, vilket är knas. Notera mellanslaget före kommatecknet.

Följande fixar biffen men jag gillar inte metoden:

<asp:repeater runat="server" ID="UserRepeater">
	<ItemTemplate><asp:Literal/Label/etc /></ItemTemplate>
	
	<SeparatorTemplate>, </SeparatorTemplate>
</asp:repeater>

Det genererar HTML i stil med Foo, Bar, Baz - precis som jag vill ha det.

Frågan är alltså om det inte går att lösa på nåt snyggare sätt?

Medlem sedan okt. 2007446 inlägg
#2

jodu det där har man retat sig på ett antal ggr
samma sak med extra radbrytningar i renderade HTMLkoden. På sätt o vis "snällt" att de lägger in radbrytningar så att allt inte hamnar på en lång rad,

Men det verkar vara som så att repeatern som standard lägger in ett en radbrytning som sedan översätts till ett mellanslag
rätt exakt samma problem
http://dotnetdebug.net/2007/05/08/aspnet-repeater-templates-whitespaces-and-visual-studio/

Medlem sedan feb. 20041 816 inlägg
#3

Så det finns ingen färdig workaround man kan använda sig av istället för att korrigera markupen?

249 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)