自动填充visualforce页面上的列

时间:2012-11-11 21:24:26

标签: visualforce

我设计了一个VF页面来显示自定义对象的字段记录列表。在我的对象中有两个数字字段我设计了VF页面以在页面底部显示这些数字字段的总数。将来如果将一个额外的数字字段添加到同一个对象,那么我该如何编写代码来添加一个列,而该列又应该自动填充在visualforce页面上。是否有可能在salesforce。

2 个答案:

答案 0 :(得分:0)

如果你在这个页面上有一个控制器/控制器扩展,你可以使用描述调用来学习对象中所有字段的列表,检查它们的类型并决定你要显示哪些字段&总结

Schema.DescribeFieldResult f = Account.NumberOfEmployees.getDescribe();
System.assertEquals(Schema.DisplayType.INTEGER, f.getType());

但依赖于描述调用的结果会有一些限制(每个请求按照100的描述调控器限制,字段将按名称排序,这可能不是您想要显示它们的顺序......)。

由于您需要动态Visualforce,因此您可以考虑制作一个fieldset或自定义设置,列出您想要的字段,然后使用Apex计算小计 - refer to it from code。这样,当您需要稍后更新它时,您将不必触摸控制器。

答案 1 :(得分:0)

请在下面找到一些代码。请注意,这未经过测试,但会给您一个完整的想法!

VF Page:
<apex:form>
      <!-- this column will return the sum -->
      <apex:column value="{!Sum}"/>
</apex:form>

Apex Class:
//Your class will contain the below method
    public String getSum(){
             Double Sum;
            //Return a list of the object
            List <Custom_Object__c> listCustom = [Select Num1, Num2 from Custom_Object__c];
            for(Custom_Object__c co : listCustom){
                Sum = co.Num1 + co.Num2;
              }
             return String.valueOf(Sum);
    }

答案将是这样的。请试一试,如果它不起作用,我将很乐意提供帮助!