2016-09-29 3 views
-1

В настоящее время работает над проектом, который использует Bootsfaces. У меня есть bootsfaces datatable, в котором мне нужно открыть диалоговое окно при выборе строки. Пожалуйста, советую, как действовать.Как сделать Bootsfaces datatable отображать диалоговое окно при выборе строки

Ниже приведен код

<b:dataTable onclick="$('viewBKDDialog').show()" 
           update=":ViewBKDForm" 
           value="#{bookingAdminController.itemsBookDet}" 
           var="car" ajax="true" select="true" responsive="true" > 
</b:dataTable> 

и я использую

<ui:include src="ViewBookingDetails_all.xhtml"/> 

в диалоговом окне.

+0

Пожалуйста, покажите, что вы уже пробовали ... Не то, что я могу помочь (нет пользователей bootsfaces), но это необходимо для других пользователей – Kukeltje

+0

Извините..Моя ошибка. Обновите код .. я знаю .. этого было бы достаточно ... onclick - это то, что испробовано .. я не знаю, чтобы это сделать ... – rahul

+0

Может кто-нибудь поднять вопрос? IMHO вопрос хорош, он, вероятно, был опущен по причинам, которые были решены последним правлением @rahul. Было бы жаль, если бы вопрос был удален. –

ответ

0

В настоящее время у меня нет полного решения, но давайте проанализируем ваш код. Это достаточно интересно.

Прежде всего, вы хотите открыть модальное диалоговое окно, основанное на выбранной строке. (На самом деле бит «модального диалога» является образованным предположением). Однако вы добавили обработчик onclick на всю таблицу. JSF не делает строки явными, поэтому вам нужно добавить обработчик onclick в ячейки таблицы. Для простоты предположим, что вы назначили обработчик onclick кнопке внутри таблицы.

Во-вторых, есть ошибка в каждой версии BootsFaces < = 0.9.1, которая мешает вам определить, какая строка была выбрана. Поэтому вам нужно использовать версию> = 0.9.2. На момент написания этого момента это снимок разработчика BootsFaces-0.9.2-SNAPSHOT. См. issue 369 on how to get it и issue 486 on the row-select bug Я недавно решил.

В-третьих, вы должны принять во внимание, что код JavaScript обработчика onclick выполняется перед запросом AJAX. Я могу только догадываться, но я предполагаю, что вы хотите обновить содержимое модального диалога на основе выбора строки. Я также предполагаю, что контент определяется запросом AJAX. Если оба предположения верны, у вас есть проблема. Обработчик onclick выполняется перед вызовом AJAX. Поэтому я предлагаю вам использовать обработчик обратного вызова JavaScript oncomplete, который предлагает некоторые компоненты BootsFaces, такие как b:commandButton.

Как я уже говорил, это не полное решение, но я надеюсь, что это все равно поможет.

+0

Я понимаю, что onclick является обработчиком javascript и будет вызван после ajax-запроса. Позвольте мне попробовать неполную и обновить версию bootsfaces. Вернусь к вам сегодня с результатами. Спасибо за предложение. – rahul

+0

Не после. Обработчик 'onclick' выполняется до запуска запроса' f: ajax'. У вас немного больше контроля, когда вы используете способ BootsFaces: 'onclick =" console.log («до AJAX»); ajax: myBean.doSomething(); javascript: console.log («после AJAX») '. В случае второй оператор журнала отображается после отправки запроса AJAX. Однако запрос AJAX является асинхронным, поэтому он будет почти всегда обрабатываться после второго оператора журнала. –

Смежные вопросы