这是完整的代码: 控制器:
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列和图像视图确定。
但是如果从公共站点运行而不是登录salesforce: 它只显示2列:
为什么不能在公共网站上显示2列(ImageName__c,Price__c)?
答案 0 :(得分:0)
可能与权限有关。
Visualforce是一个直接强制执行Salesforce安全措施的框架,因此,如果访问Visualforce页面的用户没有查看某个字段的权限,则不会呈现它。
我建议您检查配置文件/权限集,并验证访问该页面的用户是否有足够的访问权限。