【问题标题】:making primeFaces ajax call in dataTable在 dataTable 中进行 primeFaces ajax 调用
【发布时间】:2011-08-25 17:55:06
【问题描述】:

我正在使用 JSF 2 和 PrimeFaces 2.2。我尝试通过数据表中的选择框 onchange 事件进行 ajax 调用。我能够看到 System.outs 打印,但是我看不到 update 属性中给出的组件得到更新。我在 update 属性中给出了 dataTableId。

我想现在的问题是选择框再次被填充并且进行了 ajax 调用。我们是否应该只在 update 属性中提供父标记,以使 ajax 调用正常工作。请帮帮我。

【问题讨论】:

    标签: ajax jsf datatable primefaces


    【解决方案1】:

    update 属性中的ID 不以: 开头时,它变为相对于同一NamingContainer 组件内的当前组件的ID。但是由于h:dataTable 一个NamingContainer 组件,您需要通过绝对ID 引用它。在 webbrowser 中右键单击 JSF 页面并选择 View Source 以查看生成的 HTML DOM 树。找到由<h:dataTable> 生成的HTML <table> 元素,确定其id 属性的值,并在update 属性中使用该id,前缀为:

    【讨论】:

    • 嗨 BalusC 我已经在 ajax 调用中指定了它,像这样 这在日志组件“:table1”中显示了以下内容" 未发现部分更新
    • 我说,id 在生成的 HTML 源中,而不是在 JSF 源中。 JavaScript/Ajax 在 HTML 上的 webbrowser 中运行,而不是在 JSF 上的 webserver 中运行。在 webbrowser 中打开页面(不是在 Java/JSF 编辑器中),右键单击它并执行 View Source 以查看 HTML DOM 树(不是JSF 组件树)。它应该看起来像formId:tableId,其中formId<h:form> 的ID。然后,您应该在 update 属性中使用 :formId:tableId
    • 谢谢BalusC 有什么办法可以得到dataTable 行的计数吗? .....我正在像这样在源中获取 id ..... table1:0:receiptCode ......即使我把它作为 table1:receiptCode ......组件没有被渲染,所以问你是否可以得到行号
    猜你喜欢
    • 2014-09-08
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多