使用复选框组时xpage在其周围生成fieldset
和table
标签。有没有办法生成它?例如如果我的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渲染的无线电按钮:无线电并未被现场集和表格包围。