Мне удалось выяснить, как отправить несколько вложений в элемент списка sharepoint. Теперь мне нужно извлечь элемент и отобразить эти элементы в той же форме, в которой они были отправлены.
Вот код отправки:
private _onSubmit() {
this.setState({
FormStatus: 'Submitted',
SubmittedLblVis: true,
}, () => {
pnp.sp.web.lists.getByTitle("My List").items.add({
State: this.state.State,
State1: this.state.State1,
}).then((iar: ItemAddResult) => {
var attachments: AttachmentFileInfo[] = [];
attachments.push({
name: this.state.FileUpload[0].name,
content: this.state.FileUpload[0]
});
attachments.push({
name: this.state.FileUpload2[0].name,
content: this.state.FileUpload2[0]
});
attachments.push({
name: this.state.FileUpload3[0].name,
content: this.state.FileUpload3[0]
});
iar.item.attachmentFiles.addMultiple(attachments);
Это прекрасно работает.
I есть кнопка формы, которая позволяет пользователю прочитать элемент и заполнить все поля в форме. Это отлично работает. Но это не работает для вложений. Во-первых, я не знаю, как называется столбец Attachments!
Вот функция поиска:
private _editItem = (ev: React.MouseEvent<HTMLElement>) => {
const sid = Number(ev.currentTarget.id);
let _item = this.state.Items.filter((item) => { return item.Id === sid; });
if (_item && _item.length > 0) {
this._getListItems();
this.setState({
State etc...with a few examples
FormStatus: _item[0].FormStatus,
showModal: true
//The below callback function
}, () => {
if (_item[0].PanelMember) {
this.PanelMemberGetPeoplePicker(Number(_item[0].PanelMemberId));
}
});
}
}
И функция _getListItems () в приведенном выше примере:
public _getListItems() {
sp.web.lists.getByTitle("MyList").items.get().then((items: any[]) => {
let returnedItems: MyDataModel[] = items.map((item) => { return new MyDataModel(item); });
this.setState({ Items: returnedItems });
});
}
Я понимаю, что мне придется обновить интерфейс MyDataModel, какой бы ни был столбец вложений, но что такое столбец вложений? И как бы я реализовал это в вышеупомянутом, чтобы получить все 3 приложенных документа?