2012-03-20 62 views

回答

3

完成此操作的一种方法是单独使用apex:inputCheckbox控件,而不是依赖selectCheckboxes为您执行所有呈现。在一个建议中很难得到更具体的结果,因为这个问题可以通过很多方式来解答。

例如,如果您需要这些复选框与SObject实例一起出现在列表中,请创建一个包装类。如果它们基本上是单点菜单,则可以创建一个包含布尔值的类并创建该类的实例列表。然后创建一个dataTable,pageBlockTable等,并在其中一个列中包含复选框组件。或者简单地使用apex:如果不需要其他表格格式,请重复。

下面是来自VF导向重复例如:

<!-- Page: --> 
<apex:page controller="repeatCon" id="thePage"> 
    <apex:repeat value="{!strings}" var="string" id="theRepeat"> 
     <apex:outputText value="{!string}" id="theValue"/><br/> 
    </apex:repeat> 
</apex:page> 

/*** Controller: ***/ 
public class repeatCon 
{ 
    public String[] getStrings() 
    { 
     return new String[]{'ONE','TWO','THREE'}; 
    } 
} 

与inputCheckbox并用布尔字符串数组更换的outputText。然后,只需从apex:outputLink开始,然后按复选框。

  • 编辑 -

下面是使用一个类来得到你想要做的工作的一个例子。

顶点:

public class Example 
{ 
    public List<CheckboxClass> theCheckboxes {get; private set;} // Reference THIS array 

    public Example() 
    { 
     theCheckboxes = new List<CheckboxClass>(); 
     theCheckboxes.add(new Checkbox(true)); 
     theCheckboxes.add(new Checkbox(false)); 
     theCheckboxes.add(new Checkbox(true)); 
     theCheckboxes.add(new Checkbox(false)); 
    } 

    public class CheckboxClass 
    { 
     public Boolean theCheckbox {get; private set;} 

     public CheckboxClass(Boolean b) 
     { 
     this.theCheckbox = b; 
     } 
    } 
} 

Visualforce:

<apex:form> 
    <apex:pageBlock> 
     <apex:pageBlockTable value="{!theCheckboxes}" var="item"> 
     <apex:column headerValue="The Checkboxes"> 
      <apex:inputCheckbox value="{!item.theCheckbox}"> 
     </apex:column> 
     </apex:pageBlockTable> 
    </apex:pageBlock> 
</apex:form> 

我没有测试过这一点,但这样的想法,我相信你正在寻找。

+0

是的,包装无疑是这一个前进的方式。另一种选择可能是使用jQuery将标签转换为链接,或者插入链接,但是包装将更省力IMO。 – 2012-03-21 07:44:06

+0

感谢help.but如果我使用inputCheckBoxes我想引用它们的值与控制器中的数组,而不是单个variables.how做到这一点 – vishesh 2012-03-21 17:31:22

+0

这是你的数组:public List theCheckboxes {get;私人设置;}//参考本数组 – Adam 2012-03-22 05:12:12

相关问题