1

我试图在我的 VF 页面中使用 JS Remoting 将两个字符串传递给我的控制器。

在我的 VF 页面中,我使用onclick复选框中的事件处理程序调用 javascript 方法:

<apex:inputCheckbox value="{!part.selected}" disabled="{!IF(part.selected == true, true, false)}" onclick="getParamValues('{!part.contactId}','{!part.contactName}');">

这是javascript函数:

function getParamValues(whoid, whoname) {
    CallReportControllerExtension.getWhoId(whoid);
    CallReportControllerExtension.getWhoName(whoname);
}

这是我在控制器中的方法:

@RemoteAction
public static String getWhoId(String id) {
    system.debug('*********************** we are inside the getWhoId method');
    paramWhoId = id;
    return paramWhoId;  
} 

@RemoteAction
public static String getWhoName(String name) {
    system.debug('*********************** we are inside the getWhoName method');
    paramWhoName = name;
    return paramWhoName;
}

在我的调试中,从未输入过操作方法。

错误是什么意思?如何将字符串传递给控制器​​方法?

4

1 回答 1

4

http://www.salesforce.com/us/developer/docs/pages/Content/pages_js_remoting_example.htm

这是上面链接中指出的简单语法。我在您的情况下感觉到语法错误。

让我们用正确的语法解决这个问题

function getParamValues(whoid, whoname) {

     Visualforce.remoting.Manager.invokeAction(
        '{!$RemoteAction.CallReportControllerExtension.getWhoId}',
        whoid, 
        function(result, event){
            if (event.status) {
                alert('RESULT WHOID',result);

            } 
        }, 
        {escape: true}
    );

     Visualforce.remoting.Manager.invokeAction(
        '{!$RemoteAction.CallReportControllerExtension.getWhoName}',
        whoname, 
        function(result, event){
            if (event.status) {
                alert('RESULT WHONAME',result);

            } 
        }, 
        {escape: true}
    );
}

实际上,您也可以将这些组合起来并作为 List 发送并作为 List 返回,然后解析相同的内容。

于 2013-09-11T05:03:15.263 回答