停止生成表和现场集在复选框 /单选按钮组控件中的输出中



使用复选框组时xpage在其周围生成fieldsettable标签。有没有办法生成它?例如如果我的Xpage源看起来像这样 -

<xp:checkBoxGroup id="checkBoxGroup" disableTheme="true" value="#{document1.CheckboxGroup}">
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:new Array("Option 1", "Option 2", "Option 3");}]]></xp:this.value>
    </xp:selectItems>
</xp:checkBoxGroup>

然后我生成的代码是

<fieldset id="view:_id1:checkBoxGroup">
    <table>
        <tr>
            <td>
                <label><input name="view:_id1:checkBoxGroup" value="Option 1" type="checkbox"> Option 1</input></label>
            </td>
            <td>
                <label><input name="view:_id1:checkBoxGroup" value="Option 2" type="checkbox"> Option 2</input></label>
            </td>
            <td>
                <label><input name="view:_id1:checkBoxGroup" value="Option 3" type="checkbox"> Option 3</input></label>
            </td>
        </tr>
    </table>
</fieldset>

这是三个复选框的很多代码。当将table标签的所有CSS放在复选框组上时,它使我的CSS混乱了。也适用于广播按钮组。我尝试将disableTheme属性设置为true,但这也不起作用。

如果要从根本上更改组件的HTML表示的结构,则可以使用扩展性API创建替代渲染器。这使您可以完全控制哪些标记将发送到浏览器的特定组件实例,而无需更改任何其他组件的渲染方式。将渲染器注册与默认渲染器(javax.faces.SelectMany)相同的component-family,但为其分配一个自定义renderer-type;如果您然后将该自定义值分配给特定复选框组的rendererType属性,Domino将使用您的自定义渲染器类发射HTML而不是默认渲染器类。

您还可以使用xp:radio控件而不是xp:radioGroup控件,然后使用groupName属性对几个无线电按钮进行分组。XP渲染的无线电按钮:无线电并未被现场集和表格包围。

最新更新