Отображение записей на основе ключевого слова со страницы vf

У меня есть сценарий, в котором я буду отображать текстовое поле ввода на странице vf, когда я ввожу какое-то значение и нажимаю кнопку поиска, реальные учетные записи должны отображаться в зависимости от этого ключевого слова. Я попробовал следующий код, но не могу устранить ошибку Неизвестное свойство «VisualforceArrayList.Name». Ниже приведен мой код: class:

public class AccountswithKeywordfrompage {
    public string keyword{get;set;}
    public List<List<Account>> accountlist{get;set;}
    public void Accounts(){
        keyword = System.currentPageReference().getParameters().get('search');
        accountlist=[FIND '+keyword' IN ALL FIELDS 
                     RETURNING Account(Name)];
    }
}

страница vf:

‹apex:page controller=AccountswithKeywordfrompage standardStylesheets=false›

 <apex:form>
        <apex:inputText label="SearchAccounts" id="search">
            <apex:commandButton value="search" action="{!Accounts}"/>
        </apex:inputText> 
        <apex:pageblock>
            <apex:pageblockTable value="{!accountlist}" var="accountobj">
                <apex:outputlink value="{!accountobj.Name}"/>
            </apex:pageblockTable>   
        </apex:pageblock>
    </apex:form>  
</apex:page>  

Может ли кто-нибудь помочь мне решить проблему?


person m.dinesh    schedule 16.02.2021    source источник


Ответы (1)


accountlist — это List<List<Account>>, что является неправильным типом; поиск SOSL возвращает List<List<sObject>>. Так уж получилось, что ваш поиск SOSL возвращает только результаты учетной записи.

Когда вы перебираете List<List<sObject>>:

<apex:pageblockTable value="{!accountlist}" var="accountobj">

тип переменной итерации — List<Account>, которая не имеет свойства Name.

Самое чистое решение — объявить вашу переменную как List<Account> и извлечь первый элемент возвращаемого List<List<sObject>> из SOSL.

person David Reed    schedule 16.02.2021
comment
Когда я заменяю то, что вы сказали, я получаю некоторую ошибку, например Неизвестное свойство «AccountswithKeywordfrompage.list». И не могли бы вы объяснить мне, как получить значения списка, которые возвращаются из класса контроллера на страницу vf - person m.dinesh; 17.02.2021