powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF Ajax in Datatable не вызывается
5 сообщений из 5, страница 1 из 1
JSF Ajax in Datatable не вызывается
    #37664270
nizamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел на каждую строку сделать вывод информации по клику.
Подскажите почему корректно отрабатывает в первом случае информация показывается,
и не срабатывает вызов во втором случает если кнопка в dataTable?
По id вроде все корректно
> required render within the same form level
Но по логам второй случай - вызов из строки, не вызывается.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<h:form id="form1">
	<h:panelGroup id="someOne">
		<h:outputText value="#{data.something}" />
	</h:panelGroup> 
	<h:commandLink value="Get more">
		<f:ajax listener="#{informer.more}" event="click" render="someOne" />
	</h:commandLink>

	<h:dataTable value="#{bean.data}" var="data">
		<h:column>
			<h:panelGroup id="someOne">
				<h:outputText value="#{data.something}"/>
			</h:panelGroup> 
			<h:commandLink value="Get more">
				<f:ajax listener="#{informer.more}" event="click" render="someOne" />
			</h:commandLink>
		</h:column>
	</h:dataTable> 
</h:form>


В сгенерированной страницы id span someOne будет существующим, и вроде все правильно, но кнопка внутри dataTable не работает.
...
Рейтинг: 0 / 0
JSF Ajax in Datatable не вызывается
    #37664357
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего во втором случае 'someOne' не может найти,
ведь поиск идет линейный по дереву компонентов, в данном случае
someOne для таблицы находится на другой ветке
попробуй ':form1:someOne' или '@form:someOne'
Mojarra обычно в log ругается, конечно если в web.xml
Код: xml
1.
2.
3.
4.
<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
</context-param>


и чтоб отключить такие logи
Код: xml
1.
2.
3.
4.
<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
</context-param>
...
Рейтинг: 0 / 0
JSF Ajax in Datatable не вызывается
    #37665402
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Естественно у вас ничего не работает внутри таблицы, потому что это итеративный компонент. На каждой итерации создается панелгруп с айди = form1:datatableId:columnId: rowIndex :someOne, причем rowIndex последовательно увеличивается с нуля до количества выводимых строк, и как f:ajax узнает что ему отрисовать? Вам нужно каким-либо образом создавать разные айди на каждой итерации, очень хорошо если у вашего бина #{data} есть свойтсво айди, или какое то другое уникальное свойство, тогда ваш пример заработает примерно вот так

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<h:form id="form1">

	<h:dataTable value="#{bean.data}" var="data">
		<h:column>
			<h:panelGroup id="someOne#{data.id}">
				<h:outputText value="#{data.something}"/>
			</h:panelGroup> 
			<h:commandLink value="Get more">
				<f:ajax listener="#{informer.more}" event="click" render="someOne#{data.id}" />
			</h:commandLink>
		</h:column>
	</h:dataTable> 
</h:form>



Еще как вариант заюзать какую нить библиотеку компонентов, которых море, обычно каждый фреймворк реализует свою таблицу, в которой исправлены все недочеты стандартного JSF, наверняка там есть какие-нибудь атрибуты вроде #{rowIndexVar}
...
Рейтинг: 0 / 0
JSF Ajax in Datatable не вызывается
    #37665798
nizamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это это похоже на багу ибо заполняется в таблице все верно....
Код: html
1.
2.
3.
4.
5.
	<span id="j_idt_31:0:j_idf39:someOne">
		<input id="j_idt_31:0:j_idf39:j_idf41" type="image" onclick="mojara.ab(this,event,'click',0,'j_idt_31:0:j_idf39:someOne');return false"

	<span id="j_idt_31:1:j_idf39:someOne">
		<input id="j_idt_31:0:j_idf39:j_idf41" type="image" onclick="mojara.ab(this,event,'click',0,'j_idt_31:1:j_idf39:someOne');return false"


На каджу строку вставляется верный id
j_idt_31:N:j_idf39:someOne
...
Рейтинг: 0 / 0
JSF Ajax in Datatable не вызывается
    #37665899
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос идет вообще? Что сервер возвращает? Если не знаете как посмотреть то гуглите FireBug
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF Ajax in Datatable не вызывается
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]