سؤال

أنا أستخدم Richfaces 3.3.1 مع JSF RE 1.2 و facelets. لدي مشكلة غريبة مع توليد HTML من الأغنياء: DataTable متصل بـ Rich: DataScroller.

<h:form id="br">
...
 <rich:datascroller id="scrt" page="#{searchBookings.page}" stepControls="hide" renderIfSinglePage="false" for="bt" align="left" reRender="ttips,bt"/>
 <rich:dataTable id="bt" rows="20" rendered="#{!empty searchBookings.bookings}" value="#{searchBookings.bookings}" var="row" binding="#{searchBookings.table}">
....

في المرة الأولى التي يتم فيها تحميل الصفحة ، كل شيء يعمل بشكل جيد. إذا قمت بزيارة نفس الصفحة للمرة الثانية ، فإن تغيير الصفحات عبر DataScroller لم يعد يعمل على تحديث DataTable. ضرب زر التحديث يحل المشكلة.

إضافة A4J: سجل الكشف عن هذا التحذير:

 warn[14:50:07,259]: Node for replace by response with id br:bt not found in document

في الواقع ، عند فحص HTML ، تبدو الصفحة "الصحيحة" هكذا:

  <table class="dr-table rich-table " id="br:bt" ....

في حين أن الصفحة "السيئة" تبدو هكذا:

  <table class="dr-table rich-table " id="br:bt:0" ....

لاحظ ": 0" في نهاية المعرف ، لا ينبغي أن يكون هناك. ما يمكن أن يسبب هذا؟

شكرا على أي مدخلات.

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

المحلول

حسنًا ، وجدت ذلك. في مكان ما في الفول الداعم الذي فعلته

table.setRowIndex (0) ؛

ما قصدت فعله كان

table.setFirst (0) ؛

السابق على ما يبدو يجعل المولد يفترض أنه يولد صفوفًا ، لذلك يعيد معرف صف ، إلحاق ": 0". لا فكرة عن كيفية تأثير هذا فقط على المرة الثانية التي يتم فيها إنشاء الصفحة. آمل أن يكون هذا مفيدًا لشخص آخر مرة واحدة.

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