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

从PrimeFaces数据表行获取同级元素

谷梁鸣
2023-03-14

我在PrimeFaces中创建了一个datatable,它接收并呈现一个对象列表。在这一行的末尾,我有一个commandButton元素,当使用它时,它会在服务器上的managedBean上执行一些操作。

使用参数属性中命令按钮中的对象id检索当前行的所有数据。

问题是我有一个selectOneMenu元素,它与对象无关。我选择一个影响后面逻辑的值。

这是桌子:

<h:panelGrid id="panel" columns="2" bgcolor="#cce4ff"
                     cellpadding="10" cellspacing="1" rendered="#{indexBean.showChannelList}"
                     style="margin-top: 10px; margin-left: 100px;">
            <p:dataTable var="program" value="#{indexBean.programList}" style="width:1000px;"
                         paginator="True" rows="10" rowIndexVar="row" sortBy="#{program.id}"
                         paginatorPosition="bottom" widgetVar="programDT" id="programDT">

...选择

<p:column headerText="text" width="15%">
                    <h:selectOneMenu id="select-valability" value="#{indexBean.valabilitySelected}" disabled="#{indexBean.disabled}" style="font-size: small;">
                        <f:selectItems value="#{indexBean.listValabilities}" />
                        <f:param value="#{program.id}" />
                        <f:ajax resetValues="true" />
                    </h:selectOneMenu>
                </p:column>

... 还有命令按钮

<p:column headerText="text" width="20%" style="text-align: center;">
                    <h:commandButton id="cmd-button-id" value="gen JSON" action="#{indexBean.action}" 
                                     style="width: 200px; height: 30px;"
                                     class="ui-button ui-widget ui-state-default ui-corner-all"
                                     >
                        <f:param name="programId" value="#{program.id}" />

                    </h:commandButton>
                </p:column>

我希望能够从触发操作的特定行中获取select元素的值。

我尝试了上下文。findComponent()但即使我将JSF表生成的索引作为元素的绝对路径设置为form:table:index:staticIdOfSelect,它也会给我null。

我不知道如何获得兄弟元素。但那是另一种情况。

来自bean类:

@ManagedBean
@SessionScoped
public class IndexBean

我真的被困在这里了。提前谢谢!

共有1个答案

韩安顺
2023-03-14

使用行中的某个元素在bean中设置一个ajax侦听器来存储数据,然后更新想要从中获取信息的“元素”。

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

  • 我正在使用primeface 3.5,我希望在以下问题上得到帮助: 我有一个选择模式为single的datatable,所选项目是绑定到对象,而不是特定对象属性上的对象。下面的示例代码: 在项目创建期间,我不会立即将项目持久化到数据库,而是维护一个项目列表,并在操作保存处理程序期间持久化整个列表。 问题是,对于每个新创建的项,我都没有生成对象id(在持久化时在数据库上自动完成),并且在表上选择行的

  • 问题内容: 我已经使用Jsoup库从url获取元数据。 但是我想在 客户 端使用javascript 做到这一点 问题答案: 您不能仅仅因为这个问题而做客户端。您需要服务器端脚本来获取页面的内容。 或者 您可以使用 。这样, 将用作代理。 https://policies.yahoo.com/us/en/yahoo/terms/product- atos/yql/index.htm 或者, 您可以

  • 我有一个从Excel文档导入的数据框,如下所示: 我希望能够返回列1的内容作为一个列表,这样我就可以运行一个for循环,并为每个集群创建一个Excel工作表。 是否也可以将整列或整行的内容返回到列表中?例如

  • 我试图创建一个并发的数据结构,它允许一个线程轮询随机元素,而另一个线程正在写入它。 我担心的是:在极端情况下,例如,在线程A调用(在中)之后,线程B删除最后一个元素。不幸的是,随机索引恰好是最后一个元素(已被删除)的索引。因此,调用将抛出未捕获的。这是我所不期望的-调用失败,即使此列表中仍有元素。 所以我想问:我的担心是真的吗?也许我误解了(或任何其他类型的并发列表)实际上是做什么的?如果我的担心

  • 我有一个类似于上面代码的数据表,如你所见,我使用事件RowSelected复选框,有没有办法知道单击的行,并根据该信息完全禁用该行?