17

我试图在编辑时在组件对话框上设置一个默认选中复选框。以下是该字段的属性:

jcr:primaryType: widget
checked: true (boolean) *Documentation says this determines default checked status
type: checkbox (string) *read this as a fix to making checkbox selections stick
xtype: selection (string)
name: ./foo (string)
fieldValue: true (string)
4

3 回答 3

18

是的,看起来文档有点不稳定。我做了一些实验,这种属性组合对我有用:

defaultValue (String) true
fieldLabel (String) Foo Mode
inputValue (String) false
jcr:primaryType (Name) cq:Widget
name (String) ./foomode
type (String) checkbox
xtype (String) selection

defaultValue 属性似乎是关键。

您确实有 cq:Widget 作为您的主要类型,而不是小部件,不是吗?

于 2012-05-08T14:44:03.837 回答
5

要将其保存为布尔值...

<nodeName
jcr:primaryType="cq:Widget" 
fieldLabel="check this nodename" 
name="./nodeName" 
defaultValue="{Boolean}false" 
type="checkbox"
xtype="selection" />

<nodeNameHint
  jcr:primaryType="cq:Widget"
  ignoreData="{Boolean}true"
  name="./nodeName@TypeHint"
  value="Boolean"
  xtype="hidden"/>
于 2012-07-16T18:27:16.583 回答
4

要将复选框设置为默认值已选中并将属性保存为 JCR 中的布尔属性类型(而不是字符串),请使用以下经典 UI 设置:

<myCheckbox
    jcr:primaryType="cq:Widget"
    fieldLabel="My Checkbox"
    name="./myCheckbox"
    value="true"
    defaultValue="true"
    checkboxBoolTypeHint="{Boolean}true"
    type="checkbox"
    xtype="selection"/>

或者在 Granite Touch UI 中使用以下设置:

<myCheckbox
    jcr:primaryType="nt:unstructured"
    sling:resourceType="granite/ui/components/foundation/form/checkbox"
    text="My Checkbox"
    name="./myCheckbox"
    value="true"
    checked="true"/>
<myCheckboxType
    jcr:primaryType="nt:unstructured"
    sling:resourceType="granite/ui/components/foundation/form/hidden"
    name="./myCheckbox@TypeHint"
    value="Boolean"/>

http://www.nateyolles.com/blog/2015/11/aem-checkboxes-using-sling-post-servlet上有详细的文章和演示。

于 2016-03-18T05:30:29.200 回答