webForumDet fria alternativet

formatera olika beroende av data...

.NET

4 svar · 249 visningar · startad av peterbladh

Medlem sedan juni 2000277 inlägg
Frågan#1

Hej

Jag har en DataGrid (kan tänka mig att använda repeater eller datalist oxå) som jag vill highlighta vissa rader i, beroende av datat.
Ex:
Antag att man har en lista med namn och födelsedata. Man vill då att personen skall stå med fetstil om det är hans födelsedag.

Som det är nu så kör jag DataBind på datagriden, sen itererar jag igenom denna och ändrar style där det behövs. Det hade ju varit bycket effektivare att fixa formateringen under databindningen typ
if(#DataBinder.Eval(Container.DataItem, "TruckSerialNumber")...

Går det?

Medlem sedan juni 20011 732 inlägg
#2

Om du vill ha prestanda så ska du INTE använda Databinder.Eval:

It is important to note that DataBinder.Eval can carry a noticeable performance penalty over the standard data binding syntax because it uses late-bound reflection. Use DataBinder.Eval judiciously, especially when string formatting is not required.

Jag föreslår att du gör det i koden istället. Men visst, du kan skriva kod i presentationslagret... se http://webforum.aleborg.com/forum/showthread.php?s=&threadid=38626

Medlem sedan juni 2000277 inlägg
#3

ok, det var kanske dumt att ta med den koden. I datagriden ser det typ ut så här

<asp:datagrid id="dg1" runat="server" autogeneratecolumns="False">
<columns>
<asp:boundcolumn datafield="TruckType" headertext="Truck Type" />
</columns>
</asp:datagrid>

...och serverkoden

dg1.DataSource = dt.DefaultView;
dg1.DataBind();

... Hur får jag in alternativ formatering då? (och då menar jag inte varannan rad utan databeroende)

Medlem sedan juni 20011 732 inlägg
#4

Hm, du måste nog använda dig av databinder.eval ändå (även om du kanske inte ska göra if-satserna latebound förstås). Gör en itemtemplate med en label och sedan får du sätta egenskaperna på labeln i koden för varje rad i din datagrid med en for-loop.

Medlem sedan juni 2000277 inlägg
#5

usch...

men tack ändå:)

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)