سؤال

فيما يلي حد أدنى من الأغنياء: مثال Datatable مع A4J: CommandLink Inside. عند النقر فوق ، يرسل طلب Ajax إلى Bean and Rerenders الخاص بي.

<rich:dataTable id="dataTable" value="#{carManager.all}" var="item">
    <rich:column>
        <f:facet name="header">name</f:facet>
        <h:outputText value="#{item.name}" />
    </rich:column>
    <rich:column>
        <f:facet name="header">action</f:facet>
        <a4j:commandLink reRender="dataTable" value="Delete" action="#{carForm.delete}">
                <f:setPropertyActionListener value="#{item.id}" target="#{carForm.id}" />
                <f:param name="from" value="list" />
        </a4j:commandLink>
    </rich:column>
</rich:dataTable>

exmaple obove يعمل بشكل جيد حتى الآن. ولكن عندما أقوم بإضافة غني: خاضع (تجميع السيارات بواسطة المرآب على سبيل المثال) إلى الطاولة ، فإن إعادة الإعادة تفشل ...

<rich:dataTable id="dataTable" value="#{garageManager.all}" var="garage">
    <f:facet name="header">
        <rich:columnGroup>
            <rich:column>name</rich:column>
            <rich:column>action</rich:column>
        </rich:columnGroup>
    </f:facet>

    <rich:column colspan="2">
        <h:outputText value="#{garage.name}" />
    </rich:column>

    <rich:subTable value="#{garage.cars}" var="car">
        <rich:column><h:ouputText value="#{car.name}" /></rich:column>
        <rich:column>
            <a4j:commandLink reRender="dataTable" value="Delete" action="#{carForm.delete}">
                    <f:setPropertyActionListener value="#{item.id}" target="#{carForm.id}" />
                    <f:param name="from" value="list" />
            </a4j:commandLink>
        </rich:column>
    </rich:column>
</rich:dataTable>

الآن الأثرياء: datatable لا ترندر ولكن يتم حذف العنصر لأن العنصر لا يظهر بعد تحديث الصفحة اليدوية.

لماذا يدعم الدعم الخاضع ل rendender-ing هنا؟

الدبابات توم

هل كانت مفيدة؟

المحلول

اتضح أن السبات لم تحديث قائمة النماذج ذات الصلة.

بعد إزالة السيارة باستخدام Carmanager من AppFuse ، لا تزال السيارة المحذوفة تظهر في GetCars ()-قائمة المرآب المرتبط بها [عند استلام المرائب باستخدام Garagemanager.getAll ()].

لذلك المشكلة لم يكن تتعلق بـ Richfaces نفسها!

أنا حاليًا أستخدم حلًا بديلًا (حذف العناصر يدويًا عند تلقي البيانات من النموذج ذي الصلة OO) ولكن ربما سأفتح سؤالًا جديدًا لحل هذه المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top