Jakarta ee 在p:datatable jsf2中输入key作为事件
是否可以使用事件在p:datatable中使用enter键选择一行Jakarta ee 在p:datatable jsf2中输入key作为事件,jakarta-ee,jsf-2,primefaces,Jakarta Ee,Jsf 2,Primefaces,是否可以使用事件在p:datatable中使用enter键选择一行 <p:dataTable value="#{bean.list}" var="l" selection="#{bean2.user}" rowKey="#{l}" selectionMode="single"> <p:ajax event="keyup" update="@form"/> <p:column> <h:outputText value="#{
<p:dataTable value="#{bean.list}" var="l" selection="#{bean2.user}" rowKey="#{l}" selectionMode="single">
<p:ajax event="keyup" update="@form"/>
<p:column>
<h:outputText value="#{l.id}"/>
</p:column>
</p:dataTable>
是的,你可以!检查此示例代码: 视图
<h:form id="mainForm">
<p:dataTable id="dt" value="#{rowSelectionBean.list}" var="item"
selectionMode="single" selection="#{rowSelectionBean.selectedRow}"
widgetVar="dtVar" rowKey="#{item.id}">
<p:column headerText="ID">
#{item.id}
</p:column>
<p:column headerText="Name">
#{item.name}
</p:column>
</p:dataTable>
<p:outputPanel id="display">
<h:outputText value="Selected row: #{rowSelectionBean.selectedRow.name}" rendered="#{not empty rowSelectionBean.selectedRow}" />
</p:outputPanel>
<p:hotkey bind="return" update="display" process="dt" />
</h:form>
#{item.id}
#{item.name}
豆子
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class RowSelectionBean implements Serializable {
private List<SimpleBean> list;
private SimpleBean selectedRow;
@PostConstruct
public void setup() {
list = new ArrayList<SimpleBean>();
list.add(new SimpleBean(11, "A"));
list.add(new SimpleBean(22, "B"));
list.add(new SimpleBean(33, "C"));
}
public SimpleBean getSelectedRow() {
return selectedRow;
}
public void setSelectedRow(SimpleBean selectedRow) {
this.selectedRow = selectedRow;
}
public List<SimpleBean> getList() {
return list;
}
}
import java.io.Serializable;
导入java.util.ArrayList;
导入java.util.List;
导入javax.annotation.PostConstruct;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.ViewScoped;
@ManagedBean
@视域
公共类RowSelectionBean实现可序列化{
私人名单;
private SimpleBean selectedRow;
@施工后
公共作废设置(){
列表=新的ArrayList();
添加(新SimpleBean(11,“A”);
添加(新SimpleBean(22,“B”);
增加(新SimpleBean(33,“C”);
}
公共SimpleBean getSelectedRow(){
返回selectedRow;
}
公共无效集合selectedRow(SimpleBean selectedRow){
this.selectedRow=selectedRow;
}
公共列表getList(){
退货清单;
}
}
您对此进行过测试吗?热键究竟是如何帮助datatable进行选择和更新支持bean的?我在你的桌面上没有看到任何ajax标记是的,我已经测试过了。如果您想看到ajax魔术,请在这个实时演示中尝试:注意热键组件也有ajax功能:您链接的示例有一个实际的actionListener
或与热键关联的javascript操作,您的没有。ajax不仅仅发生了;必须有东西将值发送回。既然你已经测试过了,我想它一定是有效的。我不会撒谎的。你可以相信我,相信我。该框架非常好,它将update=“display”和process=“dt”解释为需要ajax请求。如果selectionMode=“single”和selection=“#{rowSelectionBean.selectedRow}”的数据表选中了一行,primefaces会假设您想用所选行的值更新#{rowSelectionBean.selectedRow}。