2011-06-06 1 views
0

Я хочу вернуть массив из класса пользовательского контроллера apex в visualforce и использовать этот массив в JavaScript.Возвращение массива из класса контроллера apex и использование в javascript в Salesforce

Как я делаю:

Javascript: 
    var SFObjectArray; 
    function myJavascriptMethod() 
    { 
     SFObjectArray = myArrayItems(); 
    } 


Apex: 
<apex:actionFunction name="myArrayItems" 
        action="{!myArrayItems}" 
        status="mystatus" 
        reRender="out"/> 
</apex:actionFunction> 

Controller: 

public class MyController 
{ 
    String[] arrayItems; 

    public PageReference myArrayItems() 
    { 
     arrayItems = new String[]{'abc','def'}; 
     return null; 
    } 

    public String[] getItems() 
    { 
     return arrayItems ; 
    } 
} 

может кто-нибудь предоставить мне некоторую помощь.

+0

кто-нибудь может дать мне некоторую помощь !!! !!!! – Swati

ответ

3

Вам придется динамически создавать свой javascript, метод контроллера вершины не вернет вам объект javascript. Я бы использовал ярлык visualforce repeat, чтобы создать массив javascript.

var SFObjectArray = new Array(); 
<apex:repeat value="{!arrayItems}" var="arrayItem"> 
SFObjectArray.push('{!arrayItem}'); 
</apex:repeat> 
0

Вы также можете использовать яваскрипт удаленного взаимодействия функции, которая будет возвращать JavaScript Object/массив для вас:

controllerLeadReviewToolSetup.asyncFunction(Parameter, function(result, event) 
{ 
    if(event.status) 
    { 
     for(var i = 0; i < result.size; i++) 
     { 
      [result[iterator]].toString(); 

     } 
    } 
}, {escape:true}); 

Подробнее об этом здесь http://www.salesforce.com/us/developer/docs/pages/Content/pages_js_remoting.htm

Смежные вопросы