首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >visualforce中的sObject?

visualforce中的sObject?
EN

Stack Overflow用户
提问于 2011-09-07 22:25:30
回答 2查看 1.8K关注 0票数 0

我有一个顶点控制器,它构建了一个要在datatable中显示的列表。这个列表组合了不同的对象,所以我创建的变量是一个列表

假设这个列表中的所有对象都有一个"external__c“字段。如何告诉visualforce呈现此字段?使用{!obj.external__c}将不起作用,因为它是sObject。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-08 07:39:15

如果您有一个SObjects列表,那么您可以使用obj.get('external__c')获得一个公共字段,尽管您通常必须将结果转换为一个类型才能使用它。

您可以在代码中创建自定义类,您可以使用各种对象填充这些类:

代码语言:javascript
复制
// inside the controller do this:
public class COutputObject
{
    private SObject sObj = null;
    public  string  strField get {return (string)sObj.get('external__c'); }

    public COutputObject(SObject s)
    {
        sObj = s;
    }
}

// -- snip --

// then have a list of these which you'll loop over in the page
public list<COutputObject> liObjects = new list<COutputObject>();

// fill this with data
for(CustomObj__c sCustom : [select Id, external__c from CustomObj__c limit 200])
{
    liObjects.add(new COutputObject(sCustom));
    // etc.

for(CustomObj2__c sCustom : [select Id, external__c from CustomObj2__c limit 200])
{
    liObjects.add(new COutputObject(sCustom));
    // etc.

不能100%确定我在getter上的语法是否正确,但已经很接近了;)希望这能帮助你实现你想要的!

票数 2
EN

Stack Overflow用户

发布于 2011-09-08 01:40:49

假设list属性在控制器中是这样声明的:Public List<Beer__c> ColdOnes { get; set; }。在Visualforce中,您可以通过控制器中的属性名称来引用啤酒...{!ColdOnes}。以下内容主要摘自Visualforce指南,但我对其进行了调整,以适合我们的消瘦主题:)

代码语言:javascript
复制
<apex:dataTable value="{!ColdOnes}" var="co" id="theTable" rowClasses="odd,even" styleClass="tableClass">

    <apex:facet name="caption">table caption</apex:facet>

    <apex:facet name="header">table header</apex:facet>

    <apex:facet name="footer">table footer</apex:facet>

    <apex:column>

            <apex:facet name="header">Beer Name</apex:facet>

        <apex:facet name="footer">column footer</apex:facet>

        <apex:outputText value="{!co.name}"/>

    </apex:column>
    <apex:column>

            <apex:facet name="header">Alcohol Volume</apex:facet>

        <apex:facet name="footer">column footer</apex:facet>

        <apex:outputText value="{!co.alcohol_volume__c}"/>

    </apex:column>
</apex:dataTable>

请注意,如果在代码中使用查询值设置ColdOnes,则需要选择要在Visualforce中输出的字段。所以:

代码语言:javascript
复制
ColdOnes=[select name, alcohol_volume__c from Beer__c where blahblahblah];

好吧,我要去喝一品脱了。希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7335540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档