Je reçois une 'Valeur de réglage d'erreur de conversion' lorsque j'essaie d'enregistrer un enregistrement dans mon extension de contrôleur. La page ressemble à ce à quoi je m'attendrais, mais quand je sélectionne une ou plusieurs cases à cocher, cela donne mon erreur. Je ne vois pas quelle est l'erreur ici. Merci pour l'aide.Visualforce 'Valeur de réglage d'erreur de conversion' - problème de liaison avec selectCheckboxes
La page:
<apex:pageBlockSectionItem >
<apex:OutputLabel value="Assigned Areas of Coverage" for="books" />
<apex:selectCheckboxes value="{!selectedBooks}"
layout="pageDirection" id="books">
<apex:selectOptions value="{!options}" />
</apex:selectCheckboxes>
</apex:pageBlockSectionItem>
Le contrôleur:
public String[] selectedBooks {get; set;}
public List<SelectOption> options
{
get
{
List<SelectOption> result = new List<SelectOption>();
List<String> optionNames = bookNames(books);
optionNames.sort();
for(String n : optionNames){
if(!blacklist.contains(n)){
result.add(new SelectOption(n, n));
}
}
return result;
}
}
private List<Book__c> books
{
get
{ if (books == null){
books = [select Id, Name from Book__c];
}
return books;
}
set;
}
private List<String> bookNames(List<Coverage__c> coverage)
{
List<String> result = new List<String>();
for(Coverage__c c : coverage){
result.add(c.Book__r.Name);
}
return result;
}
private List<String> bookNames(List<Book__c> books)
{
List<String> result = new List<String>();
for(Book__c b : books){
result.add(b.Name);
}
return result;
}
private List<Id> bookIDs(List<String> bookNames)
{
List<Id> result = new List<Id>();
Set<String> bookNamesSet = new Set<String>(bookNames);
for(Book__c b : books){
if(bookNamesSet.contains(b.Name)){
result.add(b.Id);
}
}
return result;
}
Le problème était que la liste n'a jamais été instanciée, comme vous l'indiquez. Confus, en ce que dans tous les autres contextes cela jetterait une exception de pointeur nul comme j'essaye de déréférencer une variable qui pointe vers rien. – Ben