Skip to content

Commit 7cdb7cb

Browse files
4manasamashm
andauthored
fix: dropdown datasource api call happening multiple times issue (#258)
* Dropdown datapage data not displaying issue fixed --------- Co-authored-by: mashm <manasa.mashetty@in.pega.com>
1 parent a186f71 commit 7cdb7cb

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

packages/angular-sdk-components/src/lib/_components/field/dropdown/dropdown.component.ts

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -276,25 +276,39 @@ export class DropdownComponent implements OnInit, OnDestroy {
276276

277277
columns = preProcessColumns(columns) || [];
278278
if (!this.displayMode$ && listType !== 'associated' && typeof datasource === 'string') {
279-
this.getData(datasource, parameters, columns, context);
279+
this.getData(datasource, parameters, columns, context, listType);
280280
}
281281
}
282282

283-
getData(datasource, parameters, columns, context) {
284-
this.dataPageService.getDataPageData(datasource, parameters, context).then((results: any) => {
285-
const optionsData: any[] = [];
286-
const displayColumn = getDisplayFieldsMetaData(columns);
287-
results?.forEach(element => {
288-
const val = element[displayColumn.primary]?.toString();
289-
const obj = {
290-
key: element[displayColumn.key] || element.pyGUID,
291-
value: val
292-
};
293-
optionsData.push(obj);
283+
getData(dataSource, parameters, columns, context, listType) {
284+
const dataConfig: any = {
285+
columns,
286+
dataSource,
287+
deferDatasource: true,
288+
listType,
289+
parameters,
290+
matchPosition: 'contains',
291+
maxResultsDisplay: '5000',
292+
cacheLifeSpan: 'form'
293+
};
294+
PCore.getDataApi()
295+
.init(dataConfig, context)
296+
.then((dataApiObj: any) => {
297+
const optionsData: any[] = [];
298+
const displayColumn = getDisplayFieldsMetaData(columns);
299+
dataApiObj.fetchData('').then(response => {
300+
response.data?.forEach(element => {
301+
const val = element[displayColumn.primary]?.toString();
302+
const obj = {
303+
key: element[displayColumn.key] || element.pyGUID,
304+
value: val
305+
};
306+
optionsData.push(obj);
307+
});
308+
optionsData?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });
309+
this.options$ = optionsData;
310+
});
294311
});
295-
optionsData?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });
296-
this.options$ = optionsData;
297-
});
298312
}
299313

300314
isSelected(buttonValue: string): boolean {

0 commit comments

Comments
 (0)