2015-09-16 3 views
1

У меня есть xpage с элементом управления представлением данных, который имеет флажок show checkbox и show header. Я хочу, чтобы у вас было подтверждение с подсчетом выбранных документов пользователю, когда они нажимают кнопку отправки.XPages Extension Library Data View Control Подтвердить подсчет флажка

Пример «Вы действительно хотите отправить x количество документов?»

Подтверждающее действие возвращает 0 независимо от количества документов, которые я выбираю. Что я делаю не так?

<xp:confirm> 
<xp:this.message><![CDATA[#{javascript:var dataView1:com.ibm.xsp.extlib.component.data.UIDataView = getComponent("dataView1"); 
var val = dataView1.getSelectedIds(); 
var len = val.length; 
return "Are you sure you want to submit " + len + " number of documents?"; 
}]]></xp:this.message> 
</xp:confirm> 

ответ

1

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

Однако, помимо этого, метод getSelectedIds является сложным: выбранные документы очищаются после каждого запроса, поэтому что-то, что сделает запрос на сервер для получения выбранного идентификационного номера, также будет иметь побочный эффект очистки выбор.

Что может быть способ сделать здесь, чтобы сделать проверку на стороне клиента, с чем-то вроде этого:

<xp:eventHandler ...> 
    <!-- other action stuff here --> 

    <xp:this.script><![CDATA[ 
     var count = dojo.query("tbody input[type='checkbox']:checked", dojo.byId("#{id:yourDataViewId}")).length; 
     return XSP.confirm("Are you sure you want to submit " + count + " document" + (count == 1 ? "" : "s") + "?"); 
    ]]></xp:this.script> 
</xp:eventHandler> 

Запрос Dojo там будет искать все проверено флажков внутри части тела данных view (чтобы исключить флажок заголовка), ограниченный в пределах определенного вида данных, которое вы хотите найти. Клиентский метод XSP.confirm - это та же идея, что и простое действие <xp:confirm/>, и возврат значения от него отменяет отправку, если пользователь говорит «нет».

+0

Спасибо Джесси за то, что вы нашли тайм-аут, чтобы ответить на мой вопрос. Это сработало для меня! Попытка выяснить, когда использовать то, что сложно. –