2014-07-14 6 views
5

Jeśli masz kod tak:ColdFusion cfcase instrukcje i odniesienia ich zmiennych?

<cfcase value="Test"> 
    /**Do Stuff 
</cfcase> 

Czy możliwe jest odsyłającego wynika, że ​​wartość w rachunku przypadku?

Chcę złączyć listę, która może obsługiwać wiele spraw i móc odwoływać się dynamicznie zmienne tak:

<cfcase value="Test,Another,Yes,No"> 
    <cfif this.value EQ 'Test'> blabla </cfif> 
</cfcase> 

nie mogę znaleźć nic o tym, że szczegółowe dla Szukałem wszędzie, tylko ciekawy, czy to nawet możliwe.

+0

Nicea przykłady ... tym CFScript przykład poniżej. Przegrałem wszystkie z nich. –

Odpowiedz

9

Tak, można uruchomić wiele oświadczenie przypadku w cfcase tagu:

<cfswitch expression="#URL.TestValue#"> 

    <cfcase value="Blue,Red,Orange" delimiters=","> 
     <cfoutput>#URL.TestValue#</cfoutput> 
    </cfcase> 

    <cfcase value="Yellow"> 
     <cfoutput>#URL.TestValue#</cfoutput> 
    </cfcase> 

</cfswitch> 
2

Nie sądzę, że jest to możliwe przy użyciu tagów ColdFusion. Można zrobić coś podobnego z <cfscript>

switch (expression) { 

    case "Test" : 
     // Do some extra stuff 
     // No break here 

    case "Another" : case "Yes" : case "No" : 
     // Do yet some normal stuff 
     break; 
    } 

Uwaga: Chciałbym nie chcą utrzymać ten kod

6

Cóż ... tak ... jeśli twoje wyrażenie <cfswitch> było #originalExpression#, to wartość, która spowodowała wywołanie sprawy, będzie ... #originalExpression#. Nie ma potrzeby, żeby to było trudne!

IE: trzeba zrobić coś takiego:

<cfswitch expression="#originalExpression#"> 
    <cfcase value="Test,Another,Yes,No"> 
     <!--- stuff common to all of Test,Another,Yes,No ----> 

     <!--- stuff specific to various cases ---> 
     <cfif originalExpression EQ "test"> 
      <!--- do stuff ----> 
     <cfelseif listFindNoCase("Yes,No", originalExpression)> 
      <!--- do stuff ----> 
     <cfelse> 
      <!--- do stuff for "another" ---> 
     </cfif> 
    </cfcase> 
    <!--- other cases etc ---> 
</cfswitch> 
Powiązane problemy