【问题标题】:Add ajax parameters from onstart function从 onstart 函数添加 ajax 参数
【发布时间】:2012-12-22 12:29:26
【问题描述】:

A 有primefaces commandButton 和actionListener。在页面上我也有几个对话框,其中一些是打开的,另一些是关闭的。我需要动态查找第一个关闭的对话框,调用 actionListener 方法,并将参数传递给该方法,其中包含首先关闭哪个对话框的信息。我使用该信息更新该对话框,并调用 show() 方法打开对话框。我认为唯一可能的地方是 onstart 方法,但我找不到从 onstart 方法传递 ajax 参数的方法。有什么解决办法吗?

我正在使用 Primefaces 3.4、JSF 2.1。

【问题讨论】:

    标签: ajax jsf-2 primefaces


    【解决方案1】:

    如果我的理解是正确的,您希望将值保存在 JavaScript 变量中以及表单提交一起传递。最简单的方法是将其设置为 <h:inputHidden> 组件的 HTML 表示形式的值。

    鉴于这个 JSF

    <h:form id="form">
        <h:inputHidden id="hidden" value="#{bean.hidden}" />
        ...
    </h:form>
    

    还有这个 JS

    var some = "some value";
    

    可以通过JS设置如下

    document.getElementById("form:hidden").value = some;
    

    或者,假设您使用的是 PrimeFaces,通过 jQuery

    $("#form\\:hidden").val(some);
    

    在 JSF 操作方法中,它可以直接作为 hidden 属性使用。

    【讨论】:

    • 是的,可以这样做,现在我将使用该解决方案。这是某种特定的情况。我有数据表,我想允许用户打开包含某些条目详细信息的对话框。我可以从 javascript whick 对话框中找出已关闭,并在该值上设置隐藏字段。在这一刻,我把 hiddent 领域。感谢您的 BalusC。
    • 你不能在点击对话框关闭按钮本身时执行这项工作吗?
    • 我看到primefaces上的代码变化时,他们在onstart函数中添加了cfg参数。该参数应该与用于低级 AjaxRequest 函数的参数相同,我可以设置更新或处理字段以及其他一些参数,并且它可以工作。但无法设置 params 字段。也许这是错误。见linklink
    • 在对话框关闭事件中只是不符合我的要求。例如,用户可以打开 4 个详细信息,即打开对话框 1、2、3 和 4。如果他再打开一个细节,就会打开对话框 5。他可以关闭对话框 1、3 和 5。我只需要找到第一个“免费”对话框供使用。也许我可以在 javascript 中保留一些结构来遵循这个用例,但是使用一些简单的 jQuery 选择器找到第一个对话框会更容易。
    猜你喜欢
    • 2015-09-14
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多