Jose messaged me this evening and suggested adding IF-ELSE style logic to Chameleon in Community Server 2007. While IF-ELSE logic could be implemented using standard Chameleon controls using duplicated/negated DisplayConditions, such duplication can result in mark-up that is difficult to read.
To support cases where IF-ELSE style logic is required, the ConditionalContent control was created. Here is its description from the Introduction to Chameleon: Utility Controls page:
ConditionalContent (<CSControl:ConditionalContent />)
The ConditionalContent control works like an IF-ELSE statement for content. Along with the basic single value control properties, it exposes a ContentCondition inner-property with which any conditions controls can be used. If the ContentCondition evaluates to true, the content of the TrueContentTemplate is rendered, otherwise the FalseContentTemplate is rendered. For example,
<CSControl:ConditionalContent runat="server">
<ContentConditions><CSControl:QueryStringPropertyValueComparison QueryStringProperty="condition" Operator="EqualTo" ComparisonValue="true" runat="server" /></ContentConditions>
<TrueContentTemplate>It's true!</TrueContentTemplate>
<FalseContentTemplate>It's false!</FalseContentTemplate>
</CSControl:ConditionalContent>
would render "It's True!" if the querystring contained "condition=true" and "It's False!" otherwise.
The ConditionalContent control will be available in the public release of CS2007 following beta-1.