JSF p:p中的日历:dataTable:如何获取p:ajax dateSelect事件的行
在我的设置中,我有一个@Named
Bean,类ObWithDate
是一个带有日期字段validFrom的@Entity
。 该类的对象位于bean的List
中。 如果用户更改日期,我想立即更新ObWithDate
。 p:dataTable
因此显示了几个p:calendar
组件:
bean的代码:
public void up(DateSelectEvent event) { logger.info("DateSelectEvent "+event.getDate()); // How to get the corresponding ObWithDate? }
这是Primefaces的后续问题p:日历,p:ajax值未更新(一步延迟)但现在针对具体问题: 如何在beans方法中的ajax调用中获取相应的列表项?
您可以通过编程方式解决#{i}
(顺便说一下可怕的变量名)。
FacesContext context = FacesContext.getCurrentInstance(); ObWithDate obWithDate = (ObWithDate) context.getApplication().evaluateExpressionGet(context, "#{i}", ObWithDate.class); // ...
另一种方法是使用DataModel
作为
值,以便您可以使用DataModel#getRowData()
。
private transient DataModel model; private DataModel getModel() { if (model == null) { model = new ListDataModel (list); } return model; }
以便您可以在侦听器方法中获取它,如下所示
ObWithDate obWithDate = model.getRowData(); // ...
也可以看看:
- 如何将选定的行传递给dataTable中的commandLink?
@Daniel请添加此作为答案,至少这是一个解决方法
加:)
这可能是某些方向(migth不是:))
UIComponent ui = (UIComponent) event.getSource(); ui.getParent().findComponent( ....
设置一个断点并在日食的“观察”中尝试一些…
- java.lang.AbstractMethodError:org.apache.xerces.dom.ElementImpl.getTextContent()Ljava / lang / String
- 每个Ajax调用的Javascript(之前和之后)
- 使用JSF 2.0 / Facelets,有没有办法将全局侦听器附加到所有AJAX调用?
- JSP没有将数据返回给JQuery AJAX
- 在JSP中将Javascript值传递给Java
- 为什么HtmlUnitDriver不执行JavaScript?
- 在JSF 2的AjaxBehaviorEvent中捕获KeyCode
- 如何使用JSON数据填充dropdownlist作为jQuery中的ajax响应
- 如何ajax jsf 2 outputLink