Как связать метки в компоненте SelectCheckBoxes в Visualforce? - PullRequest
2 голосов
/ 20 марта 2012

На моей странице Visualforce есть компонент <apex:SelectCheckBoxes>, который получает параметры выбора из метода Apex.Я хочу, чтобы рядом с каждым флажком отображался ярлык со ссылкой.Как мне этого добиться?Пожалуйста, помогите.

1 Ответ

3 голосов
/ 21 марта 2012

Один из способов сделать это - использовать элементы управления 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'};
   }
}

Замена outputText на inputCheckbox и Stringмассив с логическим значением.Затем просто начните с apex: outputLink и установите флажок.

  • EDIT -

Вот пример использования класса для выполнения желаемой работы.

Apex:

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>

Я не проверял это, но, как мне кажется, вам нужна эта идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...