Сделать Checkbox Не Readonly

JohnLemon

Well-known member
20.08.2014
274
2
#1
Здравствуйте, подскажите пожалуйста, есть проблема, добавляю чекбокс в DataTable вот такой:
Код:
<xp:column id="column2">
<xp:checkBox text="Label" id="checkBox1" checkedValue="1" uncheckedValue="0">
<xp:this.value><![CDATA[#{java script:rowData.getItemValueString("OMS")}]]></xp:this.value>
</xp:checkBox>
</xp:column>
Но он становиться сразу неактивным, как это изменить ??? Может кто подскажет как полностью связать его с представлением?? Необходимо сделать ячейку в xpages где будут чекбоксы, которые можно нажимать, и что бы данные сохранялись! Как во вложении.
 

Вложения

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#2
Ну так ничего удивительного. Штатные xpages-виды все для чтения.
Нужно делать обходные маневры.
Для доступа к полям нужен контекст документа в режиме редактирования.
В общем решать надо через репитер. Для красоты - можно использовать обычною таблицу.
 

JohnLemon

Well-known member
20.08.2014
274
2
#3
Ну так ничего удивительного. Штатные xpages-виды все для чтения.
Нужно делать обходные маневры.
Для доступа к полям нужен контекст документа в режиме редактирования.
В общем решать надо через репитер. Для красоты - можно использовать обычною таблицу.
А можно примерчик или более подробно ) ?
Сдалал так:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoView var="view1" viewName="test"></xp:dominoView>
<xp:dominoView var="view2" viewName="test"></xp:dominoView>
<xp:dominoDocument var="document1" formName="test"></xp:dominoDocument>
</xp:this.data>
<xp:repeat id="repeat1" rows="30" value="#{java script:database.getAllDocuments();}" var="repeat">

<xp:table>
<xp:tr>
<xp:td>
<xp:label id="label1">
<xp:this.value><![CDATA[#{java script:repeat.getItemValueString("OMS")}]]></xp:this.value>
</xp:label>
</xp:td>
<xp:td><xp:checkBox text="Label" id="checkBox1" checkedValue="1" uncheckedValue="0">
<xp:this.value><![CDATA[#{java script:repeat.getItemValueString("OMS")}]]></xp:this.value>
</xp:checkBox></xp:td>

</xp:tr>
</xp:table>
</xp:repeat></xp:view>
А что дальше ????
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#4
ну в общем можно так. Любой из вариантов.
Таки можно черед DataTable или Repeat.
Суть - в ячейку поместил панель c документом в DataSource. Документ вычисляется по номеру из вида.
Обработчик изменения в чекбокса. Сохраняем документ с опцией No Update. Ну если нужно что-то обновлять - используй Partial Update.

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoView var="view1" viewName="tst"></xp:dominoView>
</xp:this.data>
Репитер<xp:br></xp:br>
<xp:table cellpadding="10">
<xp:repeat id="repeat1" rows="30" var="repeat" value="#{view1}">	
<xp:tr>
<xp:td>
<xp:text escape="true" id="computedField1" value="#{repeat.NRUShort}"></xp:text></xp:td>
<xp:td>
<xp:panel
style="padding-left:10.0px;padding-right:10.0px;padding-top:10.0px;padding-bottom:10.0px;background-color:rgb(192,192,192)">
<xp:this.data>
<xp:dominoDocument var="document1"
action="editDocument"
documentId="#{java script:repeat.getNoteID()}">
</xp:dominoDocument>
</xp:this.data>

<xp:checkBox text="Label" id="checkBox1"
checkedValue="1" uncheckedValue="2" value="#{document1.Sex}">
<xp:eventHandler event="onchange"
submit="true" refreshMode="norefresh">
<xp:this.action><![CDATA[#{java script:document1.save()}]]></xp:this.action>
</xp:eventHandler>
</xp:checkBox>
</xp:panel>

</xp:td>

</xp:tr>
</xp:repeat>
</xp:table>
<xp:br></xp:br><xp:br></xp:br>DataTable
<xp:br></xp:br>
<xp:dataTable id="dataTable1" rows="30" value="#{view1}" var="tst">
<xp:column id="column1"><xp:text escape="true" id="computedField2" value="#{tst.NRUShort}"></xp:text></xp:column>
<xp:column id="column2">
<xp:panel
style="padding-left:10.0px;padding-right:10.0px;padding-top:10.0px;padding-bottom:10.0px;background-color:rgb(192,192,192)">
<xp:this.data>
<xp:dominoDocument var="document1"
action="editDocument"
documentId="#{java script:tst.getNoteID()}">
</xp:dominoDocument>
</xp:this.data>

<xp:checkBox text="Label" id="checkBox2"
checkedValue="1" uncheckedValue="2" value="#{document1.Sex}">
<xp:eventHandler event="onchange" submit="true"
refreshMode="norefresh">
<xp:this.action><![CDATA[#{java script:document1.save()}]]></xp:this.action>
</xp:eventHandler>
</xp:checkBox>
</xp:panel></xp:column>
</xp:dataTable></xp:view>
 

JohnLemon

Well-known member
20.08.2014
274
2
#5
При много благодарен, все работает на ура и 1 и 2 способ разобрался в роде )