我是salesforce developpement的新手。我无法在社区用户访问的可视化强制页面中创建自定义对象记录的表。我可以使用包装类访问单个记录。但是我无法显示表格,如果我在顶点:重复值中使用包装器对象列表,我会收到此错误(因为它们不是SObject):
“只能与SObject或Visualforce字段组件可解析的对象一起使用。”
解决后,我还需要支持内联编辑。客户社区用户的自定义对象访问权限是否受限?只有通过社区门户访问O才会出现问题。有没有实现自定义对象的内联编辑表的方法?
<apex:page controller="FHController" >
<apex:form >
<apex:repeat value="{!fhList}" var="rec">
Series: <apex:outputField value="{!rec.Series__c}" />
</apex:repeat>
</apex:form>
</apex:page>
public class FHController {
public List<Funding_History__c> fhList {get; set;}
public FHController() {
String id = ApexPages.currentPage().getParameters().get('id');
fhList = [SELECT id, Series__c, Date__c, Amount__c, Valuation__c, Investors__c FROM Funding_History__c WHERE Account__c = :id];
}
public PageReference save() {
System.debug('COUNT: ' + fhList.size());
update fhList;
return null;
}
}
谢谢!
答案 0 :(得分:0)
您不需要任何包装类来在VF页面上显示SObject。您只需选择一组Funding_History__c对象并且不要包装它。然后,您就可以在{!fhList}变量的VF页面上获取这些对象。 对于内联编辑,您可以使用 apex:inlineEditSupport 。以下是SF文档的引用:
此组件提供内联编辑支持 和各种容器组件。为了支持内联编辑, 此组件也必须位于标签内。
组件只能是以下标签的后代:&#34; apex:dataList&#34;,&#34; apex:dataTable&#34;,&#34; apex:form&#34;,&# 34; apex:outputField&#34;,&#34; apex:pageBlock&#34;,&#34; apex:pageBlockSection&#34;,&#34; apex:pageBlockTable&#34;,&#34; apex:repeat&# 34。
另请参阅:&#34; apex的inlineEdit属性:detail&#34;
这是简短的示例,它是如何查找Contact对象的(您的情况非常相似,您只需要更改您处理的页面控制器和SObject):
<apex:page standardController="Contact">
<apex:form >
<apex:pageBlock mode="inlineEdit">
<apex:pageBlockButtons >
<apex:commandButton action="{!edit}" id="editButton" value="Edit"/>
<apex:commandButton action="{!save}" id="saveButton" value="Save"/>
<apex:commandButton onclick="resetInlineEdit()" id="cancelButton" value="Cancel"/>
</apex:pageBlockButtons>
<apex:pageBlockSection >
<apex:outputField value="{!contact.lastname}">
<apex:inlineEditSupport showOnEdit="saveButton, cancelButton"
hideOnEdit="editButton" event="ondblclick"
changedStyleClass="myBoldClass" resetFunction="resetInlineEdit"/>
</apex:outputField>
<apex:outputField value="{!contact.accountId}"/>
<apex:outputField value="{!contact.phone}"/>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
所以,你可以用这种方式进一步调查。
答案 1 :(得分:0)
为什么不使用<apex:pageBlockTable>
?这也将解决您的第一个问题(无法显示表格)。