获取电子邮件模板并在VF页面的下拉列表中显示名称

时间:2012-08-01 06:38:04

标签: javascript salesforce

我有一些电子邮件模板管理在一个文件夹名称“Lead Process”,大约有12封电子邮件模板。

所以我需要在我的VF页面中显示一个下拉列表,其中显示该文件夹中的所有电子邮件模板。当用户从下拉列表中选择模板时,文本或html将显示在下拉列表下方的Richtext框中。

在dotnet等其他语言中,我们只需在下拉列表中触发onChange事件或onSelect事件,然后按id我们获取html内容并将其粘贴到richtext框中......所有这些都发生了在javascript那里。

在salesforce中是否可行..如果,请给我一些想法。怎么可能?。

1 个答案:

答案 0 :(得分:0)

我认为您对<apex:actionSupport> VF标记感兴趣,该标记允许您在对表单元素执行操作时调用控制器中的操作方法以及页面上的刷新和组件。在这种情况下,您需要将其绑定到onchange的{​​{1}}事件。

我最近为另一个项目编写了类似的东西,所以我稍微改了一下以便为你推广。下面的页面/控制器应该允许您在任何文件夹中查看电子邮件模板...您应该可以为您的目的修改它而不会有太多困难。

VF页面:

<apex:selectList>

控制器:

<apex:page controller="SomeController">
    <apex:form>
        <apex:pageBlock title="View Email Template" id="emailTemplateBlock">
            Select Email Template Folder:
            <apex:selectList value="{!selectedEmailTemplateFolder}" multiselect="false" size="1">
                <apex:selectOptions value="{!emailTemplateFolderOpts}" />
                <apex:actionSupport event="onchange" action="{!refreshEmailTemplateSection}" rerender="emailTemplateBlock" />
            </apex:selectList>
            <br/>
            Select Email Template: 
            <apex:selectList value="{!selectedEmailTemplate}" multiselect="false" size="1">
                <apex:selectOptions value="{!emailTemplateOpts}" />
                <apex:actionSupport event="onchange" action="{!refreshEmailTemplateSection}" rerender="emailTemplateBlock" />
            </apex:selectList>
            <br/>
            <apex:outputPanel id="emailTemplateContentPanel" rendered="{!NOT(ISNULL(chosenEmailTemplate))}">
                <p><b>{!chosenEmailTemplate.Name} - Subject:</b> {!chosenEmailTemplate.Subject}</p>
                <pre>{!chosenEmailTemplate.Body}</pre>
            </apex:outputPanel>
        </apex:pageBlock>
    </apex:form>
</apex:page>