通过javascript执行salesforce控制器?

时间:2011-08-22 14:21:03

标签: javascript salesforce apex-code

我知道通过控制器执行javascript很容易,但是可以反过来这样做吗?

用例场景:

我在页面左侧有一个产品列表。当我点击其中一个产品时,我出现了一个CSS高亮显示。然后我想用javascript重新渲染我的搜索结果函数,“showtheresults”。

它允许用户深入查看他们正在搜索其数据的产品。我能想到的唯一方法就是通过javascript。欢迎其他建议。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用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)
   {
      ...
   }
}

答案 1 :(得分:0)

您可以使用您根据控制器中的布尔值有选择地呈现的输出面板执行此操作。在此示例中,如果您希望运行showResults函数,请设置'renderScriptPanel'。如果您正在进行部分页面刷新,请确保刷新输出面板的ID。

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

答案 2 :(得分:0)