webForumDet fria alternativet

DataList: Ändra värde i runtime

.NET

5 svar · 205 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Frågan#1

Tjenare,

Hur kommer jag åt att ändra texen i en DataBinder (<%# DataBinder.Eval(Container.DataItem, "imagename") %>) vid runtime, alltså precis före den skall DataBindas.

Jag vill alltså kunna påverka värdet som skall komma ut, innan det gör det.

Mvh, Vide

Medlem sedan juni 20011 732 inlägg
#2

Antingen gör du det i onitemdatabound, men jag brukar köra det här alternativet:

<%# MyFunction(DataBinder.Eval(Container.DataItem, "imagename")) %> 

protected string MyFunction(object imagename) {
  //göra en massa gojja
  return imagename; 
}
Medlem sedan dec. 19998 577 inlägg
#3

Aha, så dum jag är... tack! :D

Medlem sedan juni 20011 732 inlägg
#4

Detta är väl ju "latebound", det är mer prestandaeffektivt att loppa igenom kolumnen i ett tidigare skede i din collection, exempelvis:

for(int i=0;i<dt.Rows.Count;i++) {
  dt.Rows[i]["Row"] = dt.Rows[i]["Row"] + "lala"; 
}

...och sen fylla din datagrid eller vad du ska fylla med den modifierade datan.

Medlem sedan dec. 19998 577 inlägg
#5

Sant det också, och det var precis så jag gjorde i går natt. ;)

Medlem sedan juni 20011 732 inlägg
#6

Aha, då föreslår jag att du behåller din kod. :)

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)