为什么无法在salesforce的公共站点中显示某些列?

时间:2018-06-15 10:03:28

标签: salesforce apex

这是完整的代码: 控制器:

public class TestController {
    public List<MyProduct__c> MyProducts {get;set;}

    public string searchstring {
        get{
            if (searchstring==null) searchstring = '';
            return searchstring;
           }
        set;} 
    public TestController()
    {
       search();
    }

   public void search(){ 
        string searchquery='select Product_Code__c,name,price__c,imagename__c from MyProduct__c where name like \'%'+searchstring+'%\' Limit 20'; 
        MyProducts= Database.query(searchquery);        

   } 
}

主页是一个visualforce页面:

<apex:page controller="TestController"  >
   <apex:form >       
     <div align="center">
           <apex:inputText style="width: 360px; height: 25px" value="{!searchstring}" label="Input"/> 
        <apex:commandButton value="Search" action="{!search}" /> 
      </div>            

      <apex:pageBlock title="Search Result"> 

            <apex:pageblockTable value="{!MyProducts}" var="a"> 
                <apex:column >
                    <apex:image width="100" height="100" value="{!URLFOR($Resource.ProductImage, 'ProductImage/' & a.ImageName__c)}"></apex:image>
                </apex:column>
                 <apex:column value="{!a.ImageName__c}"/> 
                <apex:column value="{!a.Product_Code__c}"/> 
                <apex:column value="{!a.Name}"/> 
                <apex:column value="{!a.Price__c}"/>              
            </apex:pageblockTable>         

        </apex:pageBlock> 
   </apex:form>   
</apex:page>

从开发者控制台单击预览时的结果: 它显示4列和图像视图确定。 enter image description here

但是如果从公共站点运行而不是登录salesforce: 它只显示2列: enter image description here

为什么不能在公共网站上显示2列(ImageName__c,Price__c)?

1 个答案:

答案 0 :(得分:0)

可能与权限有关。

Visualforce是一个直接强制执行Salesforce安全措施的框架,因此,如果访问Visualforce页面的用户没有查看某个字段的权限,则不会呈现它。

我建议您检查配置文件/权限集,并验证访问该页面的用户是否有足够的访问权限。