-
Notifications
You must be signed in to change notification settings - Fork 232
Working With: Items
Getting items from a list is one of the basic actions that most applications require. This is made easy through the library and the following examples demonstrate these actions.
import pnp from "sp-pnp-js";
// get all the items from a list
pnp.sp.web.lists.getByTitle("My List").items.get().then((items: any[]) => {
console.log(items);
});
// get a specific item by id
pnp.sp.web.lists.getByTitle("My List").items.getById(1).get().then((item: any) => {
console.log(items);
});
// use odata operators for more efficient queries
pnp.sp.web.lists.getByTitle("My List").items.select("Title", "Description").top(5).orderBy("Modified", true).get().then((items: any[]) => {
console.log(items);
});
There are several ways to add items to a list. The simplest just uses the add method of the items collection passing in the properties as a plain object.
import { default as pnp, ItemAddResult } from "sp-pnp-js";
// add an item to the list
pnp.sp.web.lists.getByTitle("My List").items.add({
Title: "Title",
Description: "Description"
}).then((iar: ItemAddResult) => {
console.log(iar);
});
import pnp from "sp-pnp-js";
let list = pnp.sp.web.lists.getByTitle("rapidadd");
list.getListItemEntityTypeFullName().then(entityTypeFullName => {
let batch = pnp.sp.web.createBatch();
list.items.inBatch(batch).add({ Title: "Batch 6" }, entityTypeFullName).then(b => {
console.log(b);
});
list.items.inBatch(batch).add({ Title: "Batch 7" }, entityTypeFullName).then(b => {
console.log(b);
});
batch.execute().then(d => console.log("Done"));
});
The update method is very similar to the add method in that it takes a plain object representing the fields to update. The property names are the internal names of the fields. If you aren't sure you can always do a get request for an item in the list and see the field names that come back - you would use these same names to update the item.
import pnp from "../src/pnp";
let list = pnp.sp.web.lists.getByTitle("MyList");
list.items.getById(1).update({
Title: "My New Title",
Description: "Here is a new description"
}).then(i => {
console.log(i);
});
Delete is as simple as calling the .delete method. It optionally takes an eTag if you need to manage concurrency.
import pnp from "../src/pnp";
let list = pnp.sp.web.lists.getByTitle("MyList");
list.items.getById(1).delete().then(_ => {});
Sharing is caring!