当前位置: 首页 > 知识库问答 >
问题:

单击Primefaces数据表中的其他行时不要取消选择行

秦弘亮
2023-03-14

我正在使用Primefaces 3.5数据表。该表已启用多重选择模式。基本上,该表与[本次展示][1]中的最后一个表相同。表的定义如下

<p:dataTable id="myTable" var="item" value="#{myController.items}" selection="#{myController.selectedItems}" rowKey="#{item.id}">
        <p:column selectionMode="multiple"/>
        <p:column headerText="Id"> 
...

因此,当用户通过单击复选框选择一些行,然后意外地单击一行时,除了用户最后单击的那一行之外,所有选中的行都将被取消选中。

问题是:是否有任何解决方法来维护选中的行,即使用户将单击该行的“退出”复选框?

我的一些观察:

  • 如果用户按Ctrl键并单击该行,则所有其他行都将保持选中状态。这种行为正是我想要的,但无需按Ctrl键
  • 我已经看了素面。js源代码,并发现其他行被此函数取消选择清除选择:function(){}。当用户单击行时,最好不要执行它

共有2个答案

太叔京
2023-03-14

复制自问题(OP在那里作为“答案”添加):

正如Kukeltje所建议的,我已经创建了primefaces。js使用修改的DataTable小部件修补程序。为此,我复制了primefaces。js从jar文件执行修改,并将其放在以下目录下:

webapp
 |-- META-INF
 |-- WEB-INF
 |-- resources
 |    |-- primefaces
 |    |    `-- primefaces.js

我在primefaces.js中所做的修改只是从onRowClick:函数(e, d, a)中删除了this.unselectAllRow()

吴欣然
2023-03-14

如果你阅读了最近的留档,你会发现它在新版本中是受支持的。所以要在3.5版本中修复这个问题,请查看新版本的源代码,了解他们是如何“修复”这个问题的,并创建一个js补丁...你当然也可以尝试使用更新的PF版本。使用后者有很多优势。

不在此处发布(甚至不尝试创建)修补程序(或尝试创建)的原因是,在此处发布和imo发布超出SO范围的修补程序太复杂了

 类似资料:
  • 问题内容: 我有两个postgresql表: 我想获取其中没有一行的每个IP地址。 我尝试了此查询,但它引发了语法错误。 我也想知道此查询(进行调整以使其工作)是否是为此目的性能最佳的查询。 问题答案: 基本上有4种技术可以完成此任务,所有这些技术都是标准SQL。 在Postgres中通常最快。 [](https://www.postgresql.org/docs/current/queries-

  • 我有两个postgresql表: 我想从登录日志中获取每个IP地址,它在IP\U位置中没有一行 我尝试了此查询,但它引发了语法错误。 我还想知道这个查询(通过调整使其工作)是否是用于此目的的性能最好的查询。

  • 我想选择数据表()的特定行值(此处),其中过滤条件位于其他数据表()中。它不是一个精确的过滤器,因为如果我在中有值3,我在中就有这个值的最小值和最大值变量。此外,我有一个字符串,其中包含特定的模式。例如: 中的 和 中的相应行包含 , 和 ,即 。 我在寻找这个值所在的范围和最大目标值的直线。 我有以下简化的例子: 看起来像这样: 我包括<code>大小 到目前为止,我的解决方案如下: 我写了一个

  • 在JSF页面中,我需要显示(选定行数)的(总行数)。我可以使用rowIndexVar属性在其中一列中显示行号,但我不知道在行选择的输入文本中单独显示相同的数字。 我需要在JSF页面或托管bean中做什么才能获得所选的行号。 请在这方面帮助我。 下面是我的JSF页面

  • 我对Primefaces数据表有一个问题,尤其是对Selection对象。 在我下面的代码中,我总是为变量“选定的问题”获得空,该变量绑定到具有选择的数据表。 联合战略框架如下: 和相关的Bean类(AllCountionBean.class): 数据模型: 我调试了一些运行,并提到AllQuestionBean中的变量“selectedQuestion”。课程永远不会固定。也就是说,“onRow

  • 问题内容: 我有一张桌子和一张桌子。向用户显示随机的其他用户数据,并可以决定他喜欢还是不喜欢它。我正在为尚未评级的代理用户选择新的随机用户合作伙伴! 现在,我试图选择表中没有行的所有用户,并将执行用户与已评级用户的关系评级。 该表是一个标准的用户表,在我的列,,,和。 我正在使用Laravel Eloquent,但也可以使用原始sql。 我的尝试: 这是错误的,因为通过此尝试我没有选择任何新用户。