我计划在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和工作保存功能吗?如果可以,那么怎么做?
1条答案
按热度按时间yi0zb3m41#
第一个代码片段不工作的原因是
<xp:dojoAttribute name="name" value="radio"></xp:dojoAttribute>
。此语句将input
标记的name
属性设置为radio
,而不是类似view:_id1:radio
的内容。我删除了它为我工作的行。您也不需要添加<xp:dojoAttribute name="value" value="yes"></xp:dojoAttribute>
,因为selectedValue
为您完成了这项工作。所以你的代码就变成这样-