1

当使用 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>

这是三个复选框的很多代码。它会弄乱我的 CSS,因为将任何 CSS for tabletag 也放在复选框组中。也适用于单选按钮组。我尝试将disableTheme属性设置为,true但这也不起作用。

4

2 回答 2

3

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

于 2012-12-20T15:52:09.733 回答
1

您还可以使用xp:radio控件而不是xp:radioGroup控件,然后使用该groupName属性对多个单选按钮进行分组。从 xp:radio 渲染的单选按钮没有被字段集和表格包围。

于 2012-12-28T16:29:52.620 回答