好的,我一直在试图弄清楚如何在不编写不必要的代码的情况下解决这个问题。
我有以下Visualforce代码在保存时导致错误:
<select id="rec_count">
<apex:repeat value="{!pg}" var="selpg">
<option {!IF(selpg.value = selectedpgtxt, 'selected','')} value="{!selpg.value}" >
{!selpg.value}
</option>
</apex:repeat>
</select>
错误是: 错误:元素类型“选项”必须后跟属性规范“&gt;”或“/&gt;”。
显然,视觉强制解析器对没有{!IF(selpg.value = selectedpgtxt, 'selected','')}
属性的选项标记感到不满。
我尝试过相当于:
<option selected="" value="1">1</option>
<option selected="selected" value="2">2</option>
然而,浏览器会考虑所选择的所有选项。
答案 0 :(得分:3)
除非这被认为是不必要的代码,否则以下内容似乎非常简单。
Visualforce:
<apex:selectList value="{!theSelection}">
<apex:selectOptions value="{!theList}"/>
</apex:selectList>
顶点:
// Top of class
public List<SelectOption> theList {get; private set;}
public String theSelection {get; set;}
// In constructor
this.theList = new List<SelectOption>();
this.theList.add(new SelectOption('1', 'First Option'));
this.theList.add(new SelectOption('2', 'Second Option'));
// Now for the default
this.theSelection = '1';