Сделать Checkbox Не Readonly

Тема в разделе "Lotus - Xpages", создана пользователем JohnLemon, 24 ноя 2014.

  1. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Здравствуйте, подскажите пожалуйста, есть проблема, добавляю чекбокс в DataTable вот такой:
    Код (Text):
    <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 где будут чекбоксы, которые можно нажимать, и что бы данные сохранялись! Как во вложении.
     

    Вложения:

  2. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну так ничего удивительного. Штатные xpages-виды все для чтения.
    Нужно делать обходные маневры.
    Для доступа к полям нужен контекст документа в режиме редактирования.
    В общем решать надо через репитер. Для красоты - можно использовать обычною таблицу.
     
  3. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    А можно примерчик или более подробно ) ?
    Сдалал так:
    Код (Text):
    <?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>
    А что дальше ????
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    ну в общем можно так. Любой из вариантов.
    Таки можно черед 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">
    Код (Text):
    <?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>
     
  5. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    При много благодарен, все работает на ура и 1 и 2 способ разобрался в роде )
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    с тебя плюсик
     
  7. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Да я в постоянку ставлю, 7 дней ограничение :)
     
Загрузка...

Поделиться этой страницей