Salesforce-Невозможно обновить записи после изменения в таблице блоков страниц, имеющих встроенное редактирование - PullRequest
0 голосов
/ 01 февраля 2012

Я создал поисковый запрос, который возвращает записи в таблице.Я использовал команду в возвращенных записях, так что я могу редактировать их и сохранять только в таблице.Но после изменения записей в таблице и нажатия кнопки СОХРАНИТЬ я не могу обновить записи в таблице.Как я могу использовать 'rerender', чтобы показать обновленные данные?Код страницы и действие контроллера, которое я использую, приведены ниже:

<!-- Page -->
<apex:pageBlock id="pb1">
  <apex:outputPanel id="pan">
    <apex:pageBlockTable value="{!l1}" var="k" rendered="{!flag}" id="pb">
      <apex:column value="{!k.First_Name__c}"/>
      <apex:inlineEditSupport showOnEdit="saveButton, cancelButton" hideOnEdit="editButton" event="ondblclick" changedStyleClass="myBoldClass" resetFunction="resetInlineEdit"/>
      <apex:column value="{!k.Last_Name__c}"/>
      <apex:inlineEditSupport event="ondblclick" showOnEdit="save"/>
      <apex:column value="{!k.E_mail__c}"/>
      <apex:inlineEditSupport event="ondblclick" showOnEdit="save"/>
      <apex:column value="{!k.Employee_ID__c}"/>
      <apex:commandButton action="{!save}" id="saveButton" value="Save" />
    </apex:pageBlockTable>
  </apex:outputPanel>

  <apex:commandButton action="{!edit}" id="editButton" value="Edit"/>
  <apex:commandButton action="{!save}" id="saveButton" value="Save"/>
  <apex:actionSupport event="onclick" rerender="pan" status="refreshstatus"/>
  <apex:commandButton onclick="resetInlineEdit()" id="cancelButton" value="Cancel"/>
  <apex:actionStatus id="refreshstatus" startstyle="color:green;" startText="Saving....">
  </apex:actionStatus>
</apex:pageBlock> 

// controller action
public pagereference save(){update l1;return null;}}

1 Ответ

1 голос
/ 01 февраля 2012

Публикация некоторого вашего кода будет иметь большое значение, но, в общем и целом, это так:

<!-- put your table in a panel with an ID -->
<apex:outputPanel id="thePanel:>
  <!-- put your table here -->
</apex:outputPanel>

<!-- specify the panel's ID as the rerender target for the action -->
<apex:commandButton value="Save" action="{!TheSaveAction}" rerender="thePanel"/>

И затем убедитесь, что ваш контроллер возвращает Pagereference со значением null:

public Pagereference TheSaveAction()
{
  // save
  return null;
}

Если после этого вам все еще трудно, вставьте код страницы (или соответствующие части), чтобы я мог видеть, что происходит.

...