Получить Значение Поля В Столбце Data Table....

  • Автор темы Автор темы ipopov
  • Дата начала Дата начала
I

ipopov

Просьба не кидаться отходами сразу, но просто я уже ничего не понимаю.

Сделал data table как в примере, в data source выбрал документы скриптом

var view = database.getView("($DocsByForm)");
return view.getAllDocumentsByKey("Person");

Сделал в колонке вычисляемое поле со значением как в хелпе написано

return rowdoc.getItemValueString ("LastName")

Матерится "error 500" нещадно и однозначно на скрипт в вычисляемом поле. Если туда просто поставить что нить вида
return "bla bla bla"
то на странице в результате хорошо видно по количеству строк в таблице, что документы отбираются правильно и в нужном количестве.
Я понять не не могу, как мне до полей в документе достучаться?
 
Ща кофе допью, погадаю на кофейной гуще.

Покажи код xpage
 
Ща кофе допью, погадаю на кофейной гуще.

Покажи код xpage

Погляди, погадай. Если вместо return "bla bla bla" поставить как написано в хелпе return rowdoc.getItemValueString("LastName") начинает ругаться error 500, что rowdoc не существует (это я уже в xmlных логах раскопал.....). Если оставить return "bla bla bla" то выдаст ровно столько строчек bla bla bla сколько есть документов в коллекшне.

<!--shcode--><pre><code class='xml'><?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:br></xp:br>
<xp:table>
<xp:tr>
<xp:td><xp:dataTable id="dataTable1" rows="30" style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:this.facets>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="header" id="pager1">
</xp:pager>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="footer" id="pager2">
</xp:pager>
</xp:this.facets>


<xp:this.value><![CDATA[#{java script:var view = database.getView("($DocsByForm)");
return view.getAllDocumentsByKey("Person")}]]></xp:this.value>
<xp:column id="column1">
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{java script:return "bla bla bla"}]]></xp:this.value>
</xp:text>
<xp:this.facets>
<xp:span xp:key="header">Name</xp:span>
</xp:this.facets>
</xp:column>
<xp:column id="column2"></xp:column>
</xp:dataTable></xp:td>
</xp:tr>
</xp:table>


</xp:view>[/CODE]
 
Вдогонку такой вопрос.
Есть 2 xpage'а.
Один: несколько полей и кнопка сабмита, создает документ. На некоторых полях включен Validation, чтоб пустыми не оставались.
Второй: viewpanel (с первым столбцом чекбоксов) и картинки "урна", на которую повешен simple action удаляющий выбранные документы.
По отдельности все замечательно.
Когда вставляю их рядом на третий xpage, при выборе документов чекбоксами и клике на "урну" отрабатывает validation полей и ничего не удаляется естественно......
У кнопки сабмита и "урны" на клик стоит partial update указывающий на viewpanel....
Не понимаю....
 
Погляди, погадай. Если вместо return "bla bla bla" поставить как написано в хелпе return rowdoc.getItemValueString("LastName") начинает ругаться error 500, что rowdoc не существует (это я уже в xmlных логах раскопал.....). Если оставить return "bla bla bla" то выдаст ровно столько строчек bla bla bla сколько есть документов в коллекшне.
надо дать название для переменной в которой хранится строчка - <xp:dataTable var="rowdoc" ...>

Добавлено:
У кнопки сабмита и "урны" на клик стоит partial update указывающий на viewpanel....
На какой вьюпанел? На котором находятся и поля с валидацией и вьюв с кнопкой удаления? Чему тогда удивляться. Валидация срабатывает ВО ВСЕЙ рефрешуемой части ещё до выполнения акшинов. Если валидайия не прошла - ни один акшин не сработает.

Так что либо partial update нормально укажи на отдельную панель с полями. Либо в кнопке удаления поставь галочку "Process data without validation"
 
надо дать название для переменной в которой хранится строчка - <xp:dataTable var="rowdoc" ...>

Добавлено:
На какой вьюпанел? На котором находятся и поля с валидацией и вьюв с кнопкой удаления? Чему тогда удивляться. Валидация срабатывает ВО ВСЕЙ рефрешуемой части ещё до выполнения акшинов. Если валидайия не прошла - ни один акшин не сработает.

Так что либо partial update нормально укажи на отдельную панель с полями. Либо в кнопке удаления поставь галочку "Process data without validation"
нет. Я на один xpage сделал include page двух других. На одном Include поля с валидацией и сабмит, а на другом уже view panelс урной.

Добавлено:
надо дать название для переменной в которой хранится строчка - <xp:dataTable var="rowdoc" ...>
update нормально укажи на отдельную панель с полями. Либо в кнопке удаления поставь галочку

"Process data without validation" -- спасло, как сам не углядел, не пойму, на поверхности.....спасибо.

А вот про переменную как то поподробнее можно, ничего не понял если честно.....
 
А вот про переменную как то поподробнее можно, ничего не понял если честно.....
так попробуй
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:br></xp:br>
<xp:table>
<xp:tr>
<xp:td><xp:dataTable var="rowdoc" id="dataTable1" rows="30" style="padding-left:1.0%;padding-right:1.0%;padding-top:1.0%;padding-bottom:1.0%;margin-left:2.0%;margin-right:2.0%;margin-top:2.0%;margin-bottom:2.0%">
<xp:this.facets>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="header" id="pager1">
</xp:pager>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="footer" id="pager2">
</xp:pager>
</xp:this.facets>


<xp:this.value><![CDATA[#{java script:var view = database.getView("($DocsByForm)");
return view.getAllDocumentsByKey("Person")}]]></xp:this.value>
<xp:column id="column1">
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{java script:return "bla bla bla"}]]></xp:this.value>
</xp:text>
<xp:this.facets>
<xp:span xp:key="header">Name</xp:span>
</xp:this.facets>
</xp:column>
<xp:column id="column2"></xp:column>
</xp:dataTable></xp:td>
</xp:tr>
</xp:table>


</xp:view>
 
YES!!!
Все заработало как часы.
Все, логика процесса до меня дошла.
Грит сенькс, как говорится.

P.S. если что, обращайтеся :-) чем смогу помогу обязательно...

P.P.S. одного не могу понять.....почему в хелпе этого нет.....
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!