TreeINFO-For-M365 documentation
    Preparing search index...

    The user field type is used to display a user or a list of users on a SharePoint item.

    Inherits core field functionality from Field, including:

    const { form } = tisa;
    const { myField } = tisa.form.field;

    // set single user by Id
    myField.value = 1;
    // set single user by login name (upn or claim token, async operation)
    await myField.setValue("user1@example.com");

    // set multiple users by Id
    myField.value = [1, 2, 3];
    // set multiple users by login name (upn or claim token, async operation)
    await myField.setValue([ "user1@example.com", "user2@example.com", "user3@example.com"]);

    // clear field value
    myField.value = null;
    await myField.setValue(null);

    // reset field value to original value
    myField.value = myField.originalValue;
    interface TypeDocHidden_IFieldUser {
        description: string;
        hidden: boolean;
        internalName: string;
        onChange: (func: OnChangeDelegate) => void;
        originalValue: any;
        readOnly: boolean;
        required: boolean;
        setValue: (
            value: string | number | string[] | number[] | ISiteUserInfo | ISiteUserInfo[],
            disableTriggerOnChange?: boolean,
        ) => Promise<any>;
        title: string;
        typeAsString: FieldType;
        value: any;
    }

    Hierarchy (View Summary)

    Implemented by

    Index

    Properties

    description: string

    Gets or sets the description of the field. The description is displayed in the field header. If set, it overrides the default description in SharePoint for the field.

    const { form } tisa;
    const { myField } tisa.form;
    myField.description = "My Field Description";
    hidden: boolean

    Gets or sets a value that specifies whether the field is hidden on form. If the field is hidden, the field is not displayed on the form, but can be accessed programmatically.

    const { form } tisa;
    const { myField } tisa.form;
    myField.hidden = true;
    internalName: string

    Gets the internal name that is used for the field.

    originalValue: any

    Gets original field value before any changes. This value is not updated when the field value is changed.

    const { form } tisa;
    const { myField } tisa.form;
    console.log(myField.originalValue);
    readOnly: boolean

    Gets or sets a value that specifies whether the value of the field is read-only. If the field is read-only, the value of the field cannot be changed in the UI, but can be changed programmatically using the value property or the setValue method.

    const { form } tisa;
    const { myField } tisa.form;
    myField.readOnly = true;
    required: boolean

    Gets or sets a value that specifies whether the field requires a value. If the field is required, the value of the field must be set before the form can be saved.

    const { form } tisa;
    const { myField } tisa.form;
    myField.required = true;
    setValue: (
        value: string | number | string[] | number[] | ISiteUserInfo | ISiteUserInfo[],
        disableTriggerOnChange?: boolean,
    ) => Promise<any>

    Sets user(s) by Id, native SharePoint field value format or login name (upn or claim token), or ISiteUserInfo object.

    Type declaration

    const { form } = tisa;
    const { myField } = tisa.form.field;

    // set single user by Id
    await myField.setValue(1);
    // set single user by native SharePoint field value format
    await myField.setValue("1#;Name of User 1");
    // set single user by login name (upn or claim token)
    await myField.setValue("user1@example.com");
    // set single user by User object
    await myField.setValue({ Id: 1, LoginName: "user1@example.com", Title: "Name of User 1" });
    // set multiple users by Id
    await myField.setValue([1, 2, 3]);
    // set multiple users by native SharePoint field value format
    await myField.setValue(["1#;Name of User 1", "2#;Name of User 2", "3#;Name of User 3"]);
    // set multiple users by login name (upn or claim token)
    await myField.setValue(["user1@example.com", "user2@example.com", "user3@example.com"]);
    // set multiple users by User objects
    await myField.setValue([{ Id: 1, LoginName: "user1@example.com", Title: "Name of User 1" }, { Id: 2, LoginName: "user2@example.com", Title: "Name of User 2" }, { Id: 3, LoginName: "user3@example.com", Title: "Name of User 3" }]);

    // clear field value
    await myField.setValue(null);
    await myField.setValue([]);
    title: string

    Gets or sets the title of the field. The title is displayed in the field header. If set, it overrides the default title in SharePoint for the field.

    const { form } tisa;
    const { myField } tisa.form;
    myField.title = "My Field";
    typeAsString: FieldType

    Gets the type of the field.

    const { form } tisa;
    const { myField } tisa.form;
    console.log(myField.typeAsString);
    value: any

    Gets or sets the user(s) by Id. User(s) can be set also by native SharePoint field value format or ISiteUserInfo object. User returns ISiteUserInfo object or ISiteUserInfo object array, if multiple on field is supported. For setting user(s) by login name (UPN or claim token), use the setValue method.

    • Getting user value in onInit event is supported only with awaiter.
    // usage in onInitComplete event (allow synchronous operations with user field)

    const { form } = tisa;
    const { myField } = tisa.form.field;

    // get user field value
    const value = myField.value;
    console.log(value);

    // set single user by Id
    myField.value = 1;
    // set single user by User object
    myField.value = { Id: 1, LoginName: "user1@example.com", Title: "Name of User 1" };
    // set single user by native SharePoint field value format
    myField.value = "1#;Name of User 1";
    // set multiple users by Id
    myField.value = [1, 2, 3];
    // set multiple users by User objects
    myField.value = [{ Id: 1, LoginName: "user1@example.com", Title: "Name of User 1" }, { Id: 2, LoginName: "user2@example.com", Title: "Name of User 2" }, { Id: 3, LoginName: "user3@example.com", Title: "Name of User 3" }];
    // set multiple users by native SharePoint field value format
    myField.value = ["1#;Name of User 1", "2#;Name of User 2", "3#;Name of User 3"];

    // clear user field value
    myField.value = null;
    myField.value = [];

    // reset user field value to original value
    myField.value = myField.originalValue;
    // usage in onInit event (only asynchronous operations with user field are allowed)

    const { form } = tisa;
    const { myField } = tisa.form.field;

    // get user field value
    const value = await myField.value;
    console.log(value);

    // set single user by login name (upn or claim token)
    await myField.setValue("john.doe@example.com");
    const newValue = await myField.value;
    console.log(newValue);

    Events

    onChange: (func: OnChangeDelegate) => void

    The event is triggered whenever the field value changes. The event can be suppressed by calling the setValue method with the disableTriggerOnChange parameter set to true.

    Type declaration

    const { form } tisa;
    const { myField1, myField2 } tisa.form;
    // copies the value of field1 when changed to field2 and logs the old and new values
    myField1.onChange((value, { oldValue })=>{
    myField2.value = value;
    console.log(`${oldValue} -> ${value}`);
    });