Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datatable更新操作在JSF页面中不起作用_Jsf - Fatal编程技术网

Datatable更新操作在JSF页面中不起作用

Datatable更新操作在JSF页面中不起作用,jsf,Jsf,我有一个简单的项目。当我执行诸如删除或保存之类的操作时,我的数据表并没有像我所做的那样更新。我在执行操作时获取人员列表。我试着在托管bean类中更新它,但没有再次工作 我的JSF页面: <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra

我有一个简单的项目。当我执行诸如删除或保存之类的操作时,我的数据表并没有像我所做的那样更新。我在执行操作时获取人员列表。我试着在托管bean类中更新它,但没有再次工作

我的JSF页面:

  <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:pe="http://primefaces.org/ui/extensions">
<h:head>
    <title>Java Work</title>
    <h:outputScript name="./js/default.js" />
    <script src='https://www.google.com/recaptcha/api.js'></script>

    <style>
.ui-widget {
    font-size: 12px;
}

.ui-outputlabel {
    font-weight: bold !important;
}

.ui-panelgrid td, .ui-panelgrid tr {
    border-style: none !important;
    padding-left: 0px;
}
</style>
</h:head>
<h:body>
    <p:tooltip />
    <p:growl id="growl" showDetail="true" />


    <div style="width: 100%;" align="center">
        <h:form id="frm" prependId="false">

            <p:panel header="Kişi Listesi" style="width: 1200px;" id="userPanel">
                <p:dataTable id="personList" widgetVar="personTable"
                    value="#{mainPageBean.userList}" var="person"
                    emptyMessage="Şahış Listesi Boş!" selectionMode="single"
                    selection="#{mainPageBean.selectedUser}" rowKey="#{person._id}"
                    filteredValue="#{mainPageBean.filteredUserList}" rows="50"
                    paginator="true"
                    paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                    rowsPerPageTemplate="50,100,150">
                    <p:ajax event="rowSelect" process="@this" update=":frm:toolbar" />
                    <p:ajax event="rowUnselect" process="@this" update=":frm:toolbar" />

                    <p:column headerText="Adı" filterBy="#{person.name}"
                        sortBy="#{person.name}" filterMatchMode="contains">
                        <h:outputText value="#{person.name}" />
                    </p:column>

                    <p:column headerText="Soyadı" filterBy="#{person.surname}"
                        sortBy="#{person.surname}" filterMatchMode="contains">
                        <h:outputText value="#{person.surname}" />
                    </p:column>

                    <p:column headerText="Telefon" filterBy="#{person.phone}"
                        sortBy="#{person.phone}" filterMatchMode="contains">
                        <h:outputText value="#{person.phone}" />
                    </p:column>

                </p:dataTable>
            </p:panel>

            <p:toolbar id="toolbar" style="width: 16%">
                <f:facet name="right">
                    <p:commandButton value="Yeni"
                        actionListener="#{mainPageBean.newUser()}" style="width: 100px"
                        update="personList, :userFrm:grid" process="@this"
                        oncomplete="PF('userDlg').show()" />
                    <p:commandButton value="Güncelle" style="width: 100px"
                        process="@this" disabled="#{mainPageBean.selectedUser eq null}"
                        oncomplete="PF('userDlg').show()" update=":userFrm:grid" />
                    <p:commandButton value="Sil" style="width: 100px" ajax="false"
                        disabled="#{mainPageBean.selectedUser eq null}"
                        update=":frm:personList"
                        process="@form"
                        actionListener="#{mainPageBean.delete()}" />
                </f:facet>
            </p:toolbar>
        </h:form>

        <h:form id="userFrm" prependId="false">
            <p:dialog id="editUserDlg" header="Kullanıcı" widgetVar="userDlg"
                resizable="false" modal="true" dynamic="true" closeOnEscape="true">

                <h:panelGrid id="grid" columns="3" cellpadding="5">

                    <p:outputLabel for="txtName" value="Adı" />
                    <p:inputText id="txtName" value="#{mainPageBean.selectedUser.name}"
                        required="true" requiredMessage="Ad Boş Bırakılamaz!" />
                    <p:message for="txtName" />

                    <p:outputLabel for="txtSurname" value="Soyadı" />
                    <p:inputText id="txtSurname" required="true"
                        value="#{mainPageBean.selectedUser.surname}"
                        requiredMessage="Soyad Boş Bırakılamaz!" />
                    <p:message for="txtSurname" display="text" />

                    <p:outputLabel for="txtPhone" value="Telefon" />
                    <p:inputMask mask="(999) 999-9999" id="txtPhone"
                        value="#{mainPageBean.selectedUser.phone}" required="false" />
                    <p:message for="txtPhone" display="icon" />

                </h:panelGrid>
                <f:facet name="footer">
                    <p:captcha id="captcha" validatorMessage="Sayı uyuşmadı!" />
                    <p:commandButton value="Kaydet" update="grid :frm:personList"
                        actionListener="#{mainPageBean.save()}" process="@this"
                        ajax="false" />
                    <p:ajaxStatus onsuccess="Recaptcha.reload();" />
                </f:facet>
            </p:dialog>
        </h:form>
    </div>
</h:body>
</html>

Java作品
.ui小部件{
字体大小:12px;
}
.ui输出标签{
字体大小:粗体!重要;
}
.ui panelgrid td、.ui panelgrid tr{
边框样式:无!重要;
左侧填充:0px;
}
我尝试了所有更新选项。我如何解决这个问题? 谢谢您的帮助。

您不会在任何地方更新“personTable”。从工具栏中更新personList、:userFrm:grid和:frm:personList

在您的更新中尝试@(.ui datatable)(这会更新当前页面上的所有数据表)并查看是否有效。如果是,那肯定不是更新问题,而是更新标记中的引用问题,您应该检查是否在所有地方引用了正确的ID