如何在数据表中引用数据表父级?

2023-11-22

考虑一个虚拟案例:

<h:form id="wrapperForm">
    <h:panelGroup id="rowsContainer">
        <h:dataTable id="rowsTable" value="#{bean.rows}" var="row" >
            <h:column>
                <h:commandButton value="Click me to update (#{component.parent.parent.parent.clientId})">
                    <f:ajax render=":#{component.parent.parent.parent.clientId}" />
                </h:commandButton>
            </h:column>
        </h:dataTable>
    </h:panelGroup>
</h:form>

单击按钮时,id=rowsContainer已成功更新。

但是,如果我添加ui:repeat在那里,它不再起作用了:

<h:form id="wrapperForm">
    <ui:repeat id="blocksRepeat" var="block" value="#{bean.blocks}">
        <h:panelGroup id="rowsWrapper">
            <h:dataTable id="rowsTable" value="#{block.rows}" var="row" >
                <h:column>
                    <h:commandButton value="Click me 2 update (#{component.parent.parent.parent.clientId})">
                        <f:ajax render=":#{component.parent.parent.parent.clientId}" />
                    </h:commandButton>
                </h:column>
            </h:dataTable>
        </h:panelGroup>
    </ui:repeat>
</h:form>

相反,这得到:

<f:ajax> contains an unknown id ':wrapperForm:blocksRepeat:0:rowsWrapper' - cannot locate it in the context of the component j_idt363

然而,该组件确实具有该 ID,因此 EL 应该没问题。不知何故ui:repeat破案。它是否可能尝试在实际循环之前评估 EL?

您如何参考rowsWrapper数据表中的元素?

注:我最近问过ui:repeat 中奇怪的数据表命名, which 原来是一个错误。但是,这个问题不应该与此相关,因为我按照建议将 dataTable 包装在 panelGroup 中here.


实际上有两件事出了问题:

1) ui:repeat 被破坏

正如 BalusC 在问题评论中的回答,第一个问题(再次)发生是由于Mojarra 中的一个错误。它似乎ui:repeat甚至包装容器都破损了h:dataTable没有帮助。欲了解更多详情,请参阅问题“为什么 ui:repeat 中的 h:dataTable 没有获得正确的 ID?”以及这个问题的评论。

正如 BalusC 所建议的,解决方法是使用 h:dataTable 而不是ui:repeat。它将提供不方便(<table>) HTML 但有效。这消除了在内部迭代中添加和删除行时的一些奇怪问题。

注:一些问题ui:repeat似乎在 Mojarra 2.0.3 中已修复,但并非全部。

2)参考文献失败了

即使h:dataTable解决方法,参考内部h:dataTable从里面的按钮失败。由于没有ui:repeat在使用中,这一定是数据表内部的问题。我目前没有看到任何解决方案,所以我也针对这种行为提交了罚单.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在数据表中引用数据表父级? 的相关文章

随机推荐

  • 使用 Espresso 时出现 NullPointer 异常

    我正在尝试使用浓缩咖啡 但我收到了这个错误 如果我缺少一些代码 我就没有 任何想法都将受到高度赞赏 错误日志 java lang NullPointerException No instrumentation registered Must
  • 使用 Vee-Validate 验证提交时的子输入组件

    我目前正在尝试创建一个包含多个 输入字段 组件的注册表单 这些组件都需要在按下 提交 后进行验证 目前 当其中的文本发生更改时 它们都会自行验证 但我发现很难对所有输入字段进行全局调用以验证所有输入字段 我想要实现的目标如下 http ve
  • PostgreSQL:加速数百万行表中的 SELECT 查询

    我有一个包含 gt 450 万行的表 我的SELECT查询对于我的需求来说太慢了 该表是用以下命令创建的 CREATE TABLE all legs carrier TEXT dep hub TEXT arr hub TEXT dep dt
  • 使用 Passport-saml 注销:req.logout() 或 Strategy.logout(),或两者?

    我有一个关于使用 Passport saml 进行身份验证时注销用户的正确方法的问题 使用 Passport saml 的示例脚本显示注销如下 app get logout function req res req logout res r
  • 无法在打字稿中导入 svg 文件

    In typescript tsx 文件我无法使用以下语句导入 svg 文件 import logo from logo svg 转译器 说 ts cannot find module logo svg 我的 svg 文件只是
  • 导出签名的应用程序而不“优化”png图像

    当我从 eclipse 导出 apk 时 它会压缩所有 png 图像 例如 一张 4 6 KB 的 png 在 apk 中变成了 2 15 KB 不过我更喜欢使用优化 png 文件tinypng在构建 apk 之前 这会生成更小的文件 同样
  • Composer 没有为包生成 .git 文件夹

    这很奇怪 似乎是我错过的一些小事 前几天 当我composer install我得到了自己的供应商目录 git 这允许我进行更改并更新我自己的打包存储库 今天跑步后composer install the git每个包文件夹内的目录丢失 我
  • 烛台多个 Y 值

    我的任务是在 Windows 窗体中使用 MSChart 制作烛台图 我已经成功地制作了 3D 条形图 没有任何问题 但在互联网 微软的源代码 WinSamples 和大量的搜索之后 我找不到创建烛台图的正确方法 可以帮助我的是一个清楚的例
  • mat 不是数值元组:openCV 错误

    我写下了一段显示错误的代码 但我没有得到它 请帮助 它的显示垫不是数字元组 import cv import cv2 capture cv2 VideoCapture j 3gp while 1 frame1 capture read gr
  • java复制构造函数和继承

    经过一番搜索后 我没有找到有关复制构造函数和继承的问题的任何好的答案 我有两个班级 用户和实习生 Trainee继承自User 并为Trainee添加两个String参数 现在我成功地创建了 User 的复制构造函数 但我对 Trainee
  • 将 Visual Studio 2012 导出为 2010 sln 格式

    我的老师抱怨他无法在 VS2010 环境中读取 VS2012 格式 我在设置等中环顾四周 但找不到任何东西 如何将 VS2010 可读格式的项目提供给我的老师 手动修改sln 备份您的项目文件夹 复制 粘贴到另一个位置 例如名为 backu
  • 无法安装 npm 包:“npm ERR!errno -4048”

    我正在尝试安装 npm 包 node xmpp server 但安装失败 以前 当我尝试安装全局安装而不是本地安装的软件包时 但现在根本不安装 我以管理员身份运行 bash I ran npm install node xmpp serve
  • ISR和多线程程序中的C'Volatile'关键字?

    我读到了 C 的用法volatile内存映射硬件寄存器 ISR 和多线程程序中的关键字 1 注册 uint8 t volatile pReg while pReg 0 do sth pReg point to status register
  • 如何知道DIV中的所有元素是否已完全加载?

    有一个div其中将通过 Ajax 加载一些元素 图像 iframe 等 这些元素完全加载后 我需要执行一个函数div 如何确定数组中的所有元素div已满载 我使用 jQuery 作为库 对于图像和 iframe 您可以使用load even
  • 将MySQL的POINT转换为PHP中的文本

    使用 PHP 如何将值转换为POINT数据类型为字符串 例如POINT 34 601020 58 371020 最好以 WKT 或 GeoJSON 形式输出 如果我回显原始值 我会得到奇怪的字符 我尝试过使用bin2hex然后尝试将十六进制
  • for循环中的lambda仅取最后一个值[重复]

    这个问题在这里已经有答案了 我有代码 options INFO WARNING DEBUG for i in range len options option options i cMenu add command label format
  • Perl 查找函数

    这个问题就解决了 非常感谢 我的问题和我正在使用的解决方案如下所述 问题 open IN lt test txt seek IN 10 0 read IN temp 5 seek IN 20 0 close IN 情况是 我的句柄将从位置
  • PostgreSQL 查询时间过长

    我的数据库有几亿行 我正在运行以下查询 select from Payments as p inner join PaymentOrders as po on po Id p PaymentOrderId inner join Users
  • 在 C++ 中的输出字符串中插入“£”符号

    我有以下代码 cout lt lt String that includes a sign 但是 编译器无法识别 符号 而是显示带重音符号的 u 我可以使用以下方法插入一个 cout lt lt String that includes a
  • 如何在数据表中引用数据表父级?

    考虑一个虚拟案例