Dav*_*vid 5 salesforce visualforce
在控制器中我有两个值:
public List<String> StringValue {get; set;}
public List<String> ListValue {get; set;}
Run Code Online (Sandbox Code Playgroud)
ListValue在构造函数中初始化,并添加了几个字符串.在这一点上,我可以在VisualForce页面中使用{!StringValue}和{!ListValue [1]}来引用它们.特别是列表一个是焦点 - 我甚至可以添加伪常量(getters)作为索引,使{!ListValue [nameIndex]}成为有效的引用.
但是,在尝试设置列表值而不是简单的字符串值时,我遇到了异常.
<apex:param value="123" assignTo="{!ListValue[1]}" />
Run Code Online (Sandbox Code Playgroud)
例外是 java.lang.ClassCastException: java.lang.String cannot be cast to common.formula.FormulaFieldReference
我想我理解问题的基础 - Salesforce无法创建包含索引参数的setter引用(意味着只能引用带有单个参数的setter).
有什么方法可以解决这个问题,还是只需要创建大量的ListValue1,ListValue2变量和相关代码?
这是一个技巧,但它避免了您创建数十个变量。
<apex:param value="1:123" assignTo="{!smartAssigner}" />
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器中:
public void setSmartAssigner(String myval) { // parse the colon, set list value appropriately.
Run Code Online (Sandbox Code Playgroud)
你明白了。
归档时间: |
|
查看次数: |
1892 次 |
最近记录: |