【问题标题】:Display apex class code on click of Show button单击显示按钮显示顶点类代码
【发布时间】:2012-08-01 22:38:00
【问题描述】:

我有一个动态选项列表字段,其中包含我的组织中的所有顶点类名称。页面上还有一个“显示”按钮。现在,如果用户从此选择列表中选择一个值并单击“显示”按钮,则该类的顶点代码应显示在下方。 请建议我如何在我的 VF 页面中实现它。

谢谢!

<apex:form >
<apex:selectList value="{!selectedClass}" size="5">
<apex:selectOptions value="{!ClassList}" ></apex:selectOptions>
</apex:selectList>
<apex:pageBlock >
<apex:commandButton action="{!show}" value="Show" id="Button"/>
<apex:pageBlockSection title="My Current Class">

【问题讨论】:

    标签: salesforce


    【解决方案1】:

    您可以在ApexClass 对象的body 字段中查询您要查找的内容:

    public class SomeController  {
    
        private List<ApexClass> allApexClasses;
        public String selectedClass {public get; public set;}
        public String apexCodeOutput {public get; private set;}
    
        public SomeController() {
            // only select classes that aren't part of a managed package, since you won't be able to view the body
            allApexClasses = [select id, name, body from ApexClass where lengthwithoutcomments <> -1 order by name asc];
        }
    
        public List<SelectOption> getClassList() {
            List<SelectOption> opts = new List<SelectOption> opts;
            for ( ApexClass ac : allApexClasses )
                opts.add(new SelectOption(ac.Id, ac.Name));
            return opts;
        }
    
        public PageReference show() {
            if ( selectedClass != null ) {
                Id classId = (Id) selectedClass;
                for ( ApexClass ac : allApexClasses ) {
                    if ( classId == ac.Id ) {
                        apexCodeOutput = ac.body;
                        break;
                    }
                }
            }
            return null;
        }
    }
    

    然后在您的 VF 页面中,只需在单击按钮时重新呈现输出代码。您需要在代码周围使用&lt;pre&gt; 标记来保留间距,以便代码可读。

    <apex:form>
        <apex:selectList value="{!selectedClass}" size="5">
            <apex:selectOptions value="{!ClassList}" ></apex:selectOptions>
        </apex:selectList>
        <apex:pageBlock >
            <apex:commandButton action="{!show}" value="Show" rerender="apexoutput" id="Button"/>
            <apex:pageBlockSection title="My Current Class">
                <apex:outputPanel id="apexoutput">
                    <pre>{!apexcodeoutput}</pre>
                </apex:outputPanel>
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多