28. oktober 2004 - 19:28Der er
19 kommentarer og 1 løsning
Problemer med DataList og værdier
Jeg har et spørgsmål vedr. DataBinder.Eval metoden. Jeg tror ikke helt jeg har brugt den rigtigt i nedenstående ;)
Problemet er, at jeg gerne vil manipulere med den data, i min DataTable som min DataList er bundet til - før jeg viser den. Jeg vil altså gerne have ganget, divideret, adderet og substraheret nogle tabel-værdier med hinanden. Det gør jeg på følgende måde:
Nu viser den altså værdien "1" eller "0" alt efter om min beregnede værdi er højere end en fast værdi jeg har i min DataTable. Problemet er, at jeg gerne vil have denne værdi til at være mere end 1, hvis bestemte betingelser er opfyldt. Altså hvis man kan dividere værdien "hole_no" op i den ovenstående beregning og resultatet giver mere end 2, så skal værdien fx være 2.
Jeg ved at det er noget sjusk ovenstående kode, men jeg ved ikke lige hvordan jeg gør det på en smartere måde. Hvordan får jeg mere struktur i min kode?
Det generelle problem er, at jeg gerne vil manipulere med al dataen inden det bliver vist i min DataList.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Nu har jeg fået kigget lidt på ItemDataBound-eventen. Og det ser ud som om, at det er det, jeg skal have gang i. Men nu har jeg så et andet problem. Min metode ser således ud:
Jo :) Jeg opdagede det også og nu får jeg ikke fejlen længere. Jeg vil tillade mig at omformulere mit oprindelige spørgsmål, for ovenstående løsning er noget rod...
Det jeg leder efter er bare, at jeg gerne vil have værdien på en label trukket ud, manipuleret med den og have den sat ind igen. Ovenstående virker ikke, men jeg tror du kan se, hvad det er jeg leder efter. Har du nogle forslag til, hvordan jeg gør?
Input string was not in a correct format. Og hvis jeg lader ats være som en string og bare lægger en string mere til, så siger den, at objektet ikke er initialiseret. Det kan godt være, at det er mig der har stirret mig blind på den fejl ^^ men jeg kan simpelthen ikke finde den nu :)
I mit ItemTemplate hedder label "lblAts1" og i mit AlternatingItemTemplate hedder den "lblAts2", da jeg jo ikke kan give dem det samme ID. Men ifølge ovenstående kode er det jo så kun lblAts1 jeg vil manipulere med hele vejen igennem min DataList.
det skulle der sådan set ikke være noget i vejen for - de kommer ikke "i vejen for hinanden".
men bortset fra det, så synes jeg det er meget sjældent at der er brug for en AlternatingItemTemplate... er det ikke bare en anden style du gerne vil have på hver anden række ?
f.eks. <AlternatingItemStyle BackColor="Aqua"></AlternatingItemStyle>
// og så lige for at få den med ;o) Label label = (Label)e.Item.FindControl("lblAts1"); int ats = int.Parse(label.Text) + 5; label.Text = ats.ToString();
Jamen dog... Jeg fjernede mit AlternatingItemTemplate og mit SeparatorTemplate og så virkede det. Mystisk.
Jeg har tidligere fjernet de templates som jeg ikke mente, at jeg behøvede, men mener jeg fik en underlig fejl og så lod jeg det bare være. Men nu virker det. Cool. Tak for hjælpen endnu engang ;)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.