Skip to content

Commit 472dddf

Browse files
Merge branch 'master' of https://github.com/russgove/sp-dev-fx-controls-react into russgove-master
2 parents a5e11e5 + f65f631 commit 472dddf

File tree

5 files changed

+18
-8
lines changed

5 files changed

+18
-8
lines changed

docs/documentation/docs/controls/ComboBoxListItemPicker.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { ComboBoxListItemPicker } from '@pnp/spfx-controls-react/lib/ListItemPic
2525
```TypeScript
2626
<ComboBoxListItemPicker listId='da8daf15-d84f-4ab1-9800-7568f82fed3f'
2727
columnInternalName='Title'
28+
orderBy='Title asc'
2829
keyColumnInternalName='Id'
2930
filter="Title eq 'SPFx'"
3031
onSelectedItem={this.onSelectedItem}
@@ -123,5 +124,6 @@ The `ComboBoxListItemPicker` control can be configured with the following proper
123124
| onInitialized | () => void | no | Calls when component is ready|
124125
| itemLimit | number | no | Maximum number of items to be displayed in the combobox. Default: 100 |
125126
| label | string | no | Specifies the text describing the combobox ListItemPicker. |
127+
| orderBy | string | no | Specifies the sequence of the items in the comboBox ,same as $orderBy ODATA parameter|
126128

127129
![](https://telemetry.sharepointpnp.com/sp-dev-fx-controls-react/wiki/controls/ComboBoxListItemPicker)

src/common/dal/ListItemRepository.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,15 @@ export class ListItemRepository {
1212
* @param keyInternalColumnName
1313
* @param webUrl
1414
* @param top
15+
* @param orderBy text value of the filter part of oData query 'Title desc, Created'
1516
*/
16-
public async getListItemsByFilterClause(filterText: string, listId: string, internalColumnName: string, keyInternalColumnName?: string, webUrl?: string, top?: number): Promise<any[]> {
17-
let returnItems: any[];
17+
public async getListItemsByFilterClause(filterText: string, listId: string, internalColumnName: string, keyInternalColumnName?: string, webUrl?: string, top?: number, orderBy?: string): Promise<any[]> {
1818
try {
1919
const webAbsoluteUrl = !webUrl ? this.SiteUrl : webUrl;
20-
const apiUrl = `${webAbsoluteUrl}/_api/web/lists('${listId}')/items?$select=${keyInternalColumnName || 'Id'},${internalColumnName}&$filter=${filterText}&$top=${top}`;
20+
let apiUrl = `${webAbsoluteUrl}/_api/web/lists('${listId}')/items?$select=${keyInternalColumnName || 'Id'},${internalColumnName}&$filter=${filterText}&$top=${top}`;
21+
if (orderBy) {
22+
apiUrl += `&$orderBy=${orderBy}`
23+
}
2124
const data = await this.SPClient.get(apiUrl, SPHttpClient.configurations.v1);
2225
if (data.ok) {
2326
const results = await data.json();

src/controls/listItemPicker/ComboBoxListItemPicker.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import * as strings from 'ControlStrings';
2-
import * as React from "react";
2+
import { ComboBox, IComboBoxOption } from "office-ui-fabric-react/lib/ComboBox";
33
import { Label } from "office-ui-fabric-react/lib/Label";
4+
import * as React from "react";
5+
46
import { IComboBoxListItemPickerProps, IComboBoxListItemPickerState } from ".";
5-
import * as telemetry from '../../common/telemetry';
6-
import { ComboBox, IComboBoxOption } from "office-ui-fabric-react/lib/ComboBox";
77
import { ListItemRepository } from '../../common/dal/ListItemRepository';
8+
import * as telemetry from '../../common/telemetry';
89
import styles from './ComboBoxListItemPicker.module.scss';
910
import { Spinner, SpinnerSize } from 'office-ui-fabric-react';
1011
import { cloneDeep, isEqual } from 'lodash';
@@ -45,7 +46,8 @@ export class ComboBoxListItemPicker extends React.Component<IComboBoxListItemPic
4546
columnInternalName,
4647
webUrl,
4748
itemLimit,
48-
onInitialized
49+
onInitialized,
50+
orderBy
4951
} = props;
5052
let query = filter || "";
5153
//query += filter;
@@ -57,7 +59,8 @@ export class ComboBoxListItemPicker extends React.Component<IComboBoxListItemPic
5759
columnInternalName,
5860
keyColumnInternalName,
5961
webUrl,
60-
itemLimit || 100);
62+
itemLimit || 100,
63+
orderBy);
6164

6265
this._options = listItems.map(option => {
6366
return {

src/controls/listItemPicker/IComboBoxListItemPickerProps.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@ export interface IComboBoxListItemPickerProps {
2929
onInitialized?: () => void;
3030
onSelectedItem: (item: any) => void;
3131
label?: string;
32+
orderBy?:string;
3233
}

src/webparts/controlsTest/components/ControlsTest.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1443,6 +1443,7 @@ export default class ControlsTest extends React.Component<IControlsTestProps, IC
14431443
<ComboBoxListItemPicker listId={this.state.comboBoxListItemPickerListId}
14441444
columnInternalName='Title'
14451445
keyColumnInternalName='Id'
1446+
orderBy='Title desc'
14461447
multiSelect={true}
14471448
onSelectedItem={(data) => {
14481449
console.log(`Item(s):`, data);

0 commit comments

Comments
 (0)