如何链接Visualforce中的SelectCheckBoxes组件中的标签?

时间:2012-03-20 16:34:29

标签: salesforce apex-code visualforce

我的Visualforce页面中有一个<apex:SelectCheckBoxes>组件,它从Apex方法中获取其选择选项。我想要一个标签,每个复选框旁边都会显示一个链接。我怎样才能做到这一点?请帮忙。

1 个答案:

答案 0 :(得分: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,用Boolean替换String数组。然后只需从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>

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