0

嗨我想在visualforce中创建一个这样的界面

图片

其中第一列中的值将来自顶点控制器

请给出一些在visualforce中执行此操作的想法。此外,用户将移动到第二列的值将保存在某处。我正在考虑使用自定义设置,所有可用的选项都有哪些。

谢谢

4

1 回答 1

2

不幸的是,利用您在 VisualForce 中描述的功能的唯一方法是使用<apex:inputField>绑定到 SObject 上的多选项列表字段的标签。此选项为您提供了保存数据的位置,尽管您需要事先在配置中指定可能的值(这听起来不像您想要的那样)。

如果要动态填充值,则需要在控制器中创建 SelectOptions 列表并将该列表绑定到<apex:selectlist>具有属性集的标记multiselect(请记住,这不会给您提供花哨的左右箭头您在屏幕截图中显示,但它允许用户通过 shift/ctrl-clicking 选择多个选项)。

VisualForce 片段:

<apex:selectList value="{!multiPicklistVal}" multiselect="true">
    <apex:selectOptions value="{!multiPicklistOptions}"/>
</apex:selectList>

Apex 控制器片段:

public String[] multiPicklistVal {public get; public set;}
public List<SelectOption> getMultiPicklistOptions() {
    List<SelectOption> opts = new List<SelectOption>();
    opts.add(new SelectOption('Red', 'Red'));
    opts.add(new SelectOption('Green', 'Green'));
    opts.add(new SelectOption('Blue', 'Blue'));
    return opts;
}

这种方法将允许您multiPicklistVal在操作方法中将其作为字符串数组进行引用,其中每个字符串都已由用户选择。从这里,您可以将它们保存在您提到的自定义设置中,或者保存在自定义对象中(但如果您要使用自定义对象路线,您也可以使用我的开箱即用功能在这篇文章的顶部描述)。

于 2012-05-22T17:04:02.063 回答