Teamstudio Unplugged: встроенное редактирование

Я использую Teamstudio отключен для записи.

Я пытаюсь построить таблицу, используя повторяющийся элемент управления с представлением в качестве источника данных. Пользователь должен иметь возможность изменять редактировать документы, а затем сохранять все источники данных.

Ниже приведен пример, который в настоящее время не работает. Я также попытался использовать вычисленные идентификаторы для всех различных флажков в ячейках и сохранить UNID документа строки в скрытом текстовом поле, а затем прочитать каждую строку на основе вычисленных идентификаторов и сохранить их. Это не сработало, потому что вычисление идентификаторов в ретрансляторе невозможно при отключенном питании, несмотря на огромные усилия.

Если я сделал что-то не так или есть трюк, который я не пробовал, я хотел бы услышать об этом.

<xp:table id="table">
                <xp:tr>
                    <xp:td>Document name</xp:td>
                    <xp:td>Field1</xp:td>
                    <xp:td>Field2</xp:td>
                    <xp:td>Field3</xp:td>
                </xp:tr>
                <xp:repeat id="repeat1" rows="30"
                    value="#{TestDocs}" indexVar="index" var="Docs" first="0"
                    removeRepeat="true" repeatControls="true">
                    <xp:panel>

                        <xp:tr>
                            <xp:td>
                                <xp:text id="Name" escape="true"
                                    value="#{document1.Name}">
                                </xp:text>
                            </xp:td>
                            <xp:td>
                                <xp:checkBox id="Field1"
                                    checkedValue="true" uncheckedValue="false"
                                    value="#{document1.Field1}">
                                    <xp:this.defaultChecked><![CDATA[${javascript: 

if(document1.getDocument().getItemValue("Field1")=="[true]"){               
 return true;
  }else{
 return false;
 }}]]></xp:this.defaultChecked>


                                </xp:checkBox>
                            </xp:td>
                            <xp:td>
                                <xp:checkBox id="Field2"
                                    checkedValue="true" uncheckedValue="false"
                                    value="#{document1.Field2}">
                                    <xp:this.defaultChecked><![CDATA[${javascript: 

 if(document1.getDocument().getItemValue("Field2")=="[true]"){              
 return true;
 }else{
 return false;
 }}]]></xp:this.defaultChecked>


                                </xp:checkBox>
                            </xp:td>
                            <xp:td>
                                    <xp:checkBox id="Field3"
                                    checkedValue="true" uncheckedValue="false"
                                    value="#{document1.Field3}">
                                    <xp:this.defaultChecked><![CDATA[${javascript: 

 if(document1.getDocument().getItemValue("Field3")=="[true]"){              
 return true;
 }else{
 return false;
 }}]]></xp:this.defaultChecked>


                                </xp:checkBox>
                            </xp:td>

                        </xp:tr>
                    </xp:panel>
                </xp:repeat>
            </xp:table>
            <xp:button value="Save" id="button3"
                styleClass="button">

                <xp:eventHandler event="onclick" submit="true"
                    refreshMode="complete" disableValidators="true">
                    <xp:this.action>
                        <xp:save></xp:save>
                    </xp:this.action>
                </xp:eventHandler>
            </xp:button>

1 ответ

Решение

Я бы хотел перенести логику на всю эту клиентскую сторону. Поэтому создайте таблицу с помощью jQuery, а затем при сохранении извлеките значения из полей, которые вы создали, и запишите их в скрытые поля, которые фактически будут сохранены.

С точки зрения вычисления идентификаторов полей и т. Д. Я бы добавил атрибуты к элементам, с которыми вы хотите работать, а затем выбрал их с помощью jQuery:

$('[myattr="the value"]')
Другие вопросы по тегам