Xpages, dijit.form.RadioButton, как сохранить значение?

Я планирую использовать dijit.form .radiobutton на xpage. Я пытаюсь найти решение, не используя xpages- Внешняя библиотека. Если я добавлю 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>

Вопрос

Я не уверен, что Нерабочий код, который я написал в первом примере, правильный, возможно, в нем чего-то не хватает. Можно ли использовать dijit.form.Radio с работающей функцией сохранения на Xpage? Если да, то как?


person Jozsef Lehocz    schedule 24.09.2012    source источник


Ответы (1)


Причина, по которой ваш первый фрагмент кода не работает из-за этого <xp:dojoAttribute name="name" value="radio"></xp:dojoAttribute>. Этот оператор устанавливает для атрибута name тега input значение 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>
person Naveen    schedule 24.09.2012