dojo Xpages,dijit.form.单选按钮如何保存值?

lskq00tm  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(218)

我计划在xpage上使用dijit.form.radiobutton。我试图在不使用xpages-extlib的情况下找到解决方案。如果我将dijit.form.radiobutton添加到xpage中,按钮的值不会保存。

非工作代码

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument var="document1" formName="tstRadio"></xp:dominoDocument>
    </xp:this.data>
    <xp:this.resources>
        <xp:dojoModule name="dijit.form.RadioButton"></xp:dojoModule>
    </xp:this.resources>
    <xp:button value="Label" id="button1">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action>
                <xp:saveDocument var="document1"></xp:saveDocument>
            </xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:radio text="Yes" id="radio1" groupName="radio" selectedValue="yes" value="#{document1.radio}" dojoType="dijit.form.RadioButton">
        <xp:this.dojoAttributes>
            <xp:dojoAttribute name="name" value="radio"></xp:dojoAttribute>
            <xp:dojoAttribute name="value" value="yes"></xp:dojoAttribute>
        </xp:this.dojoAttributes>
    </xp:radio>
    <xp:radio text="No" id="radio2" groupName="radio" selectedValue="no" value="#{document1.radio}" dojoType="dijit.form.RadioButton">
        <xp:this.dojoAttributes>
            <xp:dojoAttribute name="name" value="radio"></xp:dojoAttribute>
            <xp:dojoAttribute name="value" value="no"></xp:dojoAttribute>
        </xp:this.dojoAttributes>
    </xp:radio>
</xp:view>

工作代码

如果没有dijit.form.radiobutton,则值保存正确。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
<xp:dominoDocument var="document1" formName="tstRadio"></xp:dominoDocument>
    </xp:this.data>
    <xp:this.resources>
       <xp:dojoModule name="dijit.form.RadioButton"></xp:dojoModule>
   </xp:this.resources>
   <xp:button value="Label" id="button1">
       <xp:eventHandler event="onclick" submit="true"
           refreshMode="complete">
           <xp:this.action>
              <xp:saveDocument var="document1"></xp:saveDocument>
           </xp:this.action>
       </xp:eventHandler>
   </xp:button>
   <xp:radio text="Yes" id="radio1" groupName="radio" selectedValue="yes" value="#{document1.radio}">
       <xp:this.dojoAttributes>
           <xp:dojoAttribute name="name" value="radio"></xp:dojoAttribute>
           <xp:dojoAttribute name="value" value="yes"></xp:dojoAttribute>
        </xp:this.dojoAttributes>
    </xp:radio>
    <xp:radio text="No" id="radio2" groupName="radio" selectedValue="no" value="#{document1.radio}">
       <xp:this.dojoAttributes>
           <xp:dojoAttribute name="name" value="radio"></xp:dojoAttribute>
           <xp:dojoAttribute name="value" value="no"></xp:dojoAttribute>
       </xp:this.dojoAttributes>
   </xp:radio>
</xp:view>

问题

我不确定我在第一个例子中写的Not working代码是正确的,它可能缺少了一些东西。在Xpage上可以使用dijit.form.Radio和工作保存功能吗?如果可以,那么怎么做?

yi0zb3m4

yi0zb3m41#

第一个代码片段不工作的原因是<xp:dojoAttribute name="name" value="radio"></xp:dojoAttribute>。此语句将input标记的name属性设置为radio,而不是类似view:_id1:radio的内容。我删除了它为我工作的行。您也不需要添加<xp:dojoAttribute name="value" value="yes"></xp:dojoAttribute>,因为selectedValue为您完成了这项工作。
所以你的代码就变成这样-

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument var="document1" formName="tstRadio"></xp:dominoDocument>
    </xp:this.data>
    <xp:this.resources>
        <xp:dojoModule name="dijit.form.RadioButton"></xp:dojoModule>
    </xp:this.resources>
    <xp:button value="Label" id="button1">
        <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
            <xp:this.action>
                <xp:saveDocument var="document1"></xp:saveDocument>
            </xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:radio text="Yes" id="radio1" groupName="radio" selectedValue="yes" value="#{document1.radio}" dojoType="dijit.form.RadioButton">
    </xp:radio>
    <xp:radio text="No" id="radio2" groupName="radio" selectedValue="no" value="#{document1.radio}" dojoType="dijit.form.RadioButton">
    </xp:radio>
</xp:view>

相关问题