Hej! Eftersom Iif är en funktion och VB saknar lazy evaluation, så nej, det funkar inte så. hmm, lazy evalutaion? Vanlig ifsats i en egen funktion? För tusende gången, databind inte i vyn, gör det i controllern!IIF-sats...
jag har en IIf-sats enl följande:
<code>
<%#IIf(Replace(Eval("data1"), " ", "").Length > 18, (Replace(Eval("data1"), " ", "").Substring(0, 18)), (Eval("data1")))%>
</code>
Och den kollar då alltså om strängen är längre än 18 tkn, vid true så ska den skriva ut 18tkn, vid false hela strängen.
Problemet är att om strängen är mindre än 18, då blir det false, men den kör iaf true-satsen och finner då att den blir fel eftersom värdet 18 som är satt i substrängen inte finns, och ger då ett felmeddelande.
Hur gör jag för att den inte ska köra/kontrollera True-värdet även fast det egentligen är False, det är väl ändå det man har if-satser till?
Tacksam för hjälp!Sv: IIF-sats...
För övrigt kanske du borde lägga
Replace(Eval("data1"), " ", "")
i en variabel?Sv:IIF-sats...
Nåt annat förslag på hur man löser detta, strängen ligger i en databunden repeater.....Sv: IIF-sats...
Eller kanske någon inbyggd funktion som gör samma sak; finns det ingen left eller liknande?
<b>hmm, lazy evalutaion?</b>
http://www.google.se/search?q=lazy+evaluationSv: IIF-sats...
Det finns en anledning till att asp.net har inbyggt stöd för MVC...
I aspxen ska enbart utseendet ligga (Labels, TextBoxes etc) sedan via codebehind populerar du kontrollerna via databindnings eventet för listan...