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

PrimeFaces ManyCheckbox ArrayList未在模式对话框中更新[重复]

籍靖
2023-03-14

我有一个模式对话框,其中用户可以根据另一个用户选择和取消选择角色,然后将其提交到数据库以进行更新。

>

  • 加载应用程序

    数据库中有一个角色为“admin”的用户

    我尝试编辑这个用户,对话框打开,“管理”复选框被选中。

    <p:dialog header="Editing User ID: #{usersView.viewUser}" id="editUserDialog" widgetVar="editUserDialog" modal="true" appendTo="@(body)">
        <h:form id="editUserForm">
            <p:selectManyCheckbox id="roleSelect" value="#{usersView.selectedRoles}" layout="grid" columns="3">
                <f:selectItems value="#{rolesView.roles}" var="role" itemLabel="#{role.name}" itemValue="#{role.name}" />
            </p:selectManyCheckbox>
            <p:separator />
            <p:commandButton process="@this" update=":form:tabs:adminView:userTable:userRoleOutput" value="Submit" id="EditUserSubmitButton" actionListener="#{usersView.editUserRole}" oncomplete="PF('editUserDialog').hide();" />
        </h:form>
    </p:dialog>
    
    @ManagedBean(name="usersView", eager=true)
    @ApplicationScoped
    
    private ArrayList<String> selectedRoles;
    
    public Arraylist<String> getSelectedRoles()
    {
        return this.selectedRoles;
    }
    
    public void setSelectedRoles(ArrayList<String> roles)
    {
        this.selectedRoles = roles;
    }
    
    public void editUserRole(ActionEvent actionEvent)
    {
        // This method literally just loops through all users and matches the one we're looking at
        User user = findUser();
    
        if (user != null)
        {
            // gives user checked roles in database and local session
            addSelectedRoles(user);
    
            ArrayList<String> rolesToRemove = user.getRoleNames();
            rolesToRemove.removeAll(selectedRoles);
    
            // removes user unchecked roles in database and local session
            removeSelectedRoles(user, rolesToRemove);
        }
    
        else
        {
            // Handle exception...
        }
    }
    
  • 共有1个答案

    田俊爽
    2023-03-14

    我通过删除process=“@this”来解决问题,现在ArrayList正在更新。

    process=“@this”表示commandLink的当前组件,因此它没有更新。

     类似资料:
    • 问题内容: 我正在尝试制作一个可以帮助我评估从Web资源下载文件的时间的应用程序。我发现了2个样本: 使用Android下载文件,并在ProgressDialog中显示进度 和 http://www.helloandroid.com/tutorials/how-download-fileimage-url- 您的设备 第二个示例显示了较小的下载时间,但是我不明白如何使用它来更新进度对话框。我认为在

    • 我们有一个打开模态对话框的页面,表单如下。然而,当我们击中应该处理表单动作的控制器时,表单对象是未定义的,我是一个太多的Angular新手,无法理解为什么... 这是父页面控制器,具有打开模式对话框的功能: 在这样的页面上: “邀请”对话框html如下所示: 应该处理邀请的控制器在其他地方: 那么,将表单作用域放入控制器的正确方法是什么? 也许我需要将注入并向其添加功能?但是当我这样做的时候,动作

    • 问题内容: 我有一个运行一些嵌入式Python脚本的MFC应用程序。我正在尝试使该嵌入式脚本创建模态对话框之一,但是我没有取得太大的成功。 谁能指出我进行模态对话的方式吗?我需要为此使用Windows函数还是仅Tk或Python函数就足够了? 对于我搜索过的内容,似乎以下功能组合可以发挥作用,但它们似乎没有按我期望的方式工作: 问题答案: 是使窗口成为“应用程序模式”的适当机制。也就是说,它从同一

    • 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是 Qt 所 独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。 所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进 行交互,直到该对话框关闭。对于非模 态对话框,当被打开时,用户既可选择和该对话框进 行交互,也可以选择同应用程序的其他窗口交互。 在 Qt

    • 我面临一个问题,其中我得到一个异常说UnhandledAlertException模态对话框存在,下面是一些痕迹 组织。openqa。硒。未处理的AlertException:存在模式对话框:此页面要求您确认是否要离开-您输入的数据可能不会保存。构建信息:版本:“2.41.0”,版本:“3192D8A6C4449DC285928BA02479344F5423C58”,时间:“2014-03-27

    • 我有一个带有多个模板字段(用于下拉列表)的网格视图,如果我将其放置在我用作模式对话框的DIV之外,它就可以正常工作。网格有onrowdatabound和OnRowDeleting事件,另外还有一个按钮,用于向网格添加新行。当我试图将此网格移动到模式对话框时,“添加”按钮停止工作。点击事件以代码隐藏方式编码,不会触发。有人能帮我理解我该怎么处理吗?任何帮助都将不胜感激。先谢谢你 $(“#对话框”)。