2014-07-14 14 views
5

Wenn Sie Code haben wie so:ColdFusion cfcase-Anweisungen und Verweisen auf ihre Variablen?

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

Ist es möglich, diesen Wert in der Case-Anweisung zu verweisen?

Ich möchte eine Liste verketten, die dynamisch mehrere Fälle und in der Lage umgehen kann, um die Variablen zu verweisen etwa so:

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

ich nichts finden können, die für überall, wo ich darüber detailliert ausgesehen haben, nur Neugierig, wenn es überhaupt möglich ist.

+0

Nizza Beispiele ... einschließlich der cfscript Beispiel unten. Ich habe sie alle aufgewertet. –

Antwort

9

Ja beibehalten möchten, können Sie mehrere case-Anweisung in einer cfcase Tag laufen:

<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

Ich denke nicht, dass es möglich ist, ColdFusion-Tags zu verwenden. Sie können etwas Ähnliches tun mit <cfscript>

switch (expression) { 

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

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

Haftungsausschluss: Ich würde nicht diesem Code

6

Nun ... yeah ... Wenn Ihr <cfswitch> Ausdruck #originalExpression# war, dann ist der Wert, der den Fall ausgelöst hat, ... #originalExpression#. Es muss nicht heikel sein!

IE: Sie brauchen so etwas wie dies zu tun:

<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>