[英]Displaying Records based on keyword from vf page
我有一個場景,我將在 vf 頁面上顯示輸入文本字段,當我輸入一些值並單擊搜索按鈕時,應根據該關鍵字顯示真實帳戶。 我嘗試了以下代碼,但無法解決錯誤Unknown property '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>
誰能幫我解決這個問題?
accountlist
是List<List<Account>>
,這是錯誤的類型; SOSL 搜索返回List<List<sObject>>
。 碰巧您的 SOSL 搜索只返回帳戶結果。
當您遍歷List<List<sObject>>
時:
<apex:pageblockTable value="{!accountlist}" var="accountobj">
迭代變量的類型是List<Account>
,它沒有Name
屬性。
最干凈的解決方案是將變量聲明為List<Account>
並從 SOSL 中提取返回的List<List<sObject>>
的第一個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.