javascript - 在 primefaces 数据表上使用监听器执行行单击

标签 javascript ajax jsf jsf-2 primefaces

问题很短。我创建了一个 p:datatable 但在 p:column 中我实际上有一个 div 元素。不幸的是,数据表应该有可选择的行,而 div 不会合作;)。 所以解决办法是手动调用,div元素上有onclick监听器,但是datatable的rowSelection应该怎么调用呢?是否有一些 Primefaces 元素的功能列表?

代码:

<p:dataTable var="user" value="#{rec.friends}" rowKey="#{user.id}" widgetVar="friendscrollist"
        rendered="#{not empty rec.friends}" scrollable="true" rowIndexVar="findex"
        scrollHeight="500" scrollWidth="220" selectionMode="single" selection="#{rec.chosenFriend}" styleClass="friendscroll">
                <p:column width="198" id="friend#{findex}">
    <div class="friendlist" onclick="friendscrollist.clickRow(#{findex})" />
                </p:column>
                <p:ajax update=":leftform" event="rowSelect" />
                <p:ajax update=":leftform" event="rowUnselect" />
</p:dataTable>

当然这是一个简化版本,只有你需要的东西。所以问题是在 div onclick?

中调用什么

最佳答案

<p:dataTable widgetVar>unselectAllRows()selectRow(index)正是您所需要的功能。

<div onclick="friendscrollist.unselectAllRows(); friendscrollist.selectRow(#{findex})">

不幸的是,这些功能没有可用的文档,但在 Chrome/Firebug 中,当您输入 friendscrollist. 时,您可以在自动完成列表中看到所有可用功能的列表。在 JS 控制台中。下面是来自 Chrome 的屏幕:

enter image description here

根据函数名查看 JS 源代码或常识应该可以告诉/提示您这些函数的作用。


更新:我的观点是正确的,其中一些函数实际上记录在 PrimeFaces 3.4 User's Guide 中.它们位于第 146 页第 3.26 章“数据表”的“客户端 API”部分。

关于javascript - 在 primefaces 数据表上使用监听器执行行单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14294968/

相关文章:

javascript - 最佳动态 JavaScript/JQuery 网格

javascript - 为什么 `resolutions` 在与 bower.json 相同的 package.json 中不受支持

java - 多个 ajax 数据到 Spring MVC Controller

jquery - 使用 JSON 将对象数组从 jsp 传递到 java servlet

php - 保存div内容到数据库

javascript - 如何使用 JavaScript 正则表达式拆分字符串中的单词?

jsf - 如何在 c :if in Facelets 中使用 OR 条件

java - 使用 URL 参数的 JSF Managed Bean 方法调用

jsf - 在新选项卡中重定向到外部 URL 并同时在支持 bean 中执行操作

JavaScript 时区偏移与 Windows 偏移不匹配