jsf-2 - Primefaces 数据表列选择

标签 jsf-2 primefaces

我想知道如何获得列选择

我有以下数据表

<p:dataTable id="DataTable" value="#{dataTable.selecDataModel}" var="test" scrollable="TRUE" scrollHeight="500" styleClass="day-column2" selectionMode="single" >
    <p:column headerText="Column1" footerText="Column1" width="450">
        <h:outputText value="Test1" />
    </p:column>
    <p:column headerText="Column2" footerText="Column2" width="450">
        <h:outputText value="Test2" />
    </p:column>
 </p:dataTable>

p:ajax仅支持行选择,如果我想知道选择了哪一列,我该如何获得相同的结果。

最佳答案

您可以使用 jQuery 找出所选列的索引并将其作为 ajax 事件发送到服务器

这里有一个方法:

首先在表格上方添加一个inputText(使其隐藏)

<h:inputText id="mySelectedColumnId" value="#{myBean.mySelectedColumnField}" style="display:none">
    <f:ajax listener="#{myBean.myListener}"></f:ajax>
</h:inputText>

和以下js代码绑定(bind)点击表格并触发点击h:inputText,这将触发服务器上的监听

jQuery(document).delegate("#yourTableID td", "click", function (event) {//bind every click on any td in the table
    var columnNumber = jQuery(this).index();//get index of clicked row
    jQuery("#mySelectedColumnId").val(columnNumber); //set value in the inputtext
    jQuery("#mySelectedColumnId").change(); //this will trigger the ajax listener
});

更新

我实际上的意思是以下结构:

<h:outputScript name="js/newjavascriptfile.js" target="head" />

.
.
.
.

<h:form prependId="false">
     <h:inputText id="mySelectedColumnId" value="#{myBean.mySelectedColumnField}" style="display:none">
         <f:ajax listener="#{myBean.myListener}"></f:ajax>
     </h:inputText>
     <p:dataTable id="DataTable"....
.
.
.
.

并在 js 内(将其放在 Web 应用程序文件夹根目录的 resources 文件夹内的 js 文件夹内 Resources (Library) In JSF 2.0 )文件位置

jQuery(window).load(function () {
     jQuery(document).delegate("#yourTableID td", "click", function (event) {//bind every click on any td in the table
        var columnNumber = jQuery(this).index();//get index of clicked row
        jQuery("#mySelectedColumnId").val(columnNumber); //set value in the inputtext
        jQuery("#mySelectedColumnId").change(); //this will trigger the ajax listener
    });
});

关于jsf-2 - Primefaces 数据表列选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12440158/

相关文章:

css - 如何在没有 <h :panelGroup>? 的情况下实现对齐的对话框布局

ajax - 将额外参数传递给 p :ajax event ="rowSelectRadio" listener

css - 如何调整 p :commandButton 的大小

java - 部分页面渲染(primefaces)需要两次点击才能改变

primefaces - 在 Primefaces 数据表上延迟加载完整更新支持 bean

jsf - 访问传递给扩展 PrimeFaces 组件的属性

jsf - 在 JSF2 中,如何知道复合组件是否有子组件?

Primefaces p :ajax and remoteCommand does not update growl messages

html - 带有大对话框的 PrimeFaces - 如何正确执行此操作?