Выполнение контроллера Salesforce через JavaScript? - PullRequest
0 голосов
/ 22 августа 2011

Я знаю, что легко можно выполнить javascript через контроллер, но возможно ли сделать это наоборот?

Сценарий использования:

У меня есть список продуктов на левой стороне страницы.Когда я нажимаю на один из этих продуктов, у меня появляется выделение CSS.Затем я хотел бы, чтобы javascript повторно отображал функцию моих результатов поиска "showtheresults".

Это позволило бы пользователям детализировать продукт, данные которого они ищут.Единственный способ, которым я могу думать, это сделать через JavaScript.Другие предложения приветствуются.

Ответы [ 3 ]

1 голос
/ 04 декабря 2011

Вы можете попробовать использовать инструментарий Ajax. В JavaScript:

// Include Ajax toolkit
{!REQUIRESCRIPT("/soap/ajax/22.0/connection.js")} 
{!REQUIRESCRIPT("/soap/ajax/22.0/apex.js")} 

// Get selected Lead Ids
var leadIds = {!GETRECORDIDS($ObjectType.Lead)};

// Call your class method
var result = sforce.apex.execute('CalledFromJavaScript', 'theMethod', {arg: leadIds}); 

Затем в Apex:

// Make your class global and method a webservice:
global class CalledFromJavaScript 
{
   webService static Integer theMethod(List<Id> sObjectIds)
   {
      ...
   }
}
0 голосов
/ 08 декабря 2011

Возможно, вы захотите посмотреть JavaScript Remoting для контроллеров Apex

0 голосов
/ 25 августа 2011

Вы можете сделать это с панелью вывода, которую вы визуализировали выборочно на основе логического значения в вашем контроллере. В этом примере установите 'renderScriptPanel', когда вы хотите запустить функцию showResults. Если вы выполняете частичное обновление страницы, обязательно обновите идентификатор панели вывода.

<apex:outputPanel id="scriptPanel" rendered="{!renderScriptPanel}">
  <script type="text/javascript"> 
    showTheResults();
  </script>
</apex:outputPanel>
...