Skip to content

Commit bfd935e

Browse files
FIxing issue 1738
1 parent d58bb93 commit bfd935e

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

src/controls/dynamicForm/DynamicForm.tsx

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -412,56 +412,60 @@ export class DynamicForm extends React.Component<
412412
columnInternalName,
413413
hiddenFieldName,
414414
} = field;
415+
let fieldcolumnInternalName = columnInternalName;
416+
if (fieldcolumnInternalName.startsWith('_x') || fieldcolumnInternalName.startsWith('_')) {
417+
fieldcolumnInternalName = `OData_${fieldcolumnInternalName}`;
418+
}
415419
if (field.newValue !== null && field.newValue !== undefined) {
416420

417421
let value = field.newValue;
418422
if (["Lookup", "LookupMulti", "User", "UserMulti"].indexOf(fieldType) < 0) {
419-
objects[columnInternalName] = value;
423+
objects[fieldcolumnInternalName] = value;
420424
}
421425

422426
// Choice fields
423427

424428
if (fieldType === "Choice") {
425-
objects[columnInternalName] = field.newValue.key;
429+
objects[fieldcolumnInternalName] = field.newValue.key;
426430
}
427431
if (fieldType === "MultiChoice") {
428-
objects[columnInternalName] = { results: field.newValue };
432+
objects[fieldcolumnInternalName] = { results: field.newValue };
429433
}
430434

431435
// Lookup fields
432436

433437
if (fieldType === "Lookup") {
434438
if (value && value.length > 0) {
435-
objects[`${columnInternalName}Id`] = value[0].key;
439+
objects[`${fieldcolumnInternalName}Id`] = value[0].key;
436440
} else {
437-
objects[`${columnInternalName}Id`] = null;
441+
objects[`${fieldcolumnInternalName}Id`] = null;
438442
}
439443
}
440444
if (fieldType === "LookupMulti") {
441445
value = [];
442446
field.newValue.forEach((element) => {
443447
value.push(element.key);
444448
});
445-
objects[`${columnInternalName}Id`] = {
449+
objects[`${fieldcolumnInternalName}Id`] = {
446450
results: value.length === 0 ? null : value,
447451
};
448452
}
449453

450454
// User fields
451455

452456
if (fieldType === "User") {
453-
objects[`${columnInternalName}Id`] = field.newValue.length === 0 ? null : field.newValue;
457+
objects[`${fieldcolumnInternalName}Id`] = field.newValue.length === 0 ? null : field.newValue;
454458
}
455459
if (fieldType === "UserMulti") {
456-
objects[`${columnInternalName}Id`] = {
460+
objects[`${fieldcolumnInternalName}Id`] = {
457461
results: field.newValue.length === 0 ? null : field.newValue,
458462
};
459463
}
460464

461465
// Taxonomy / Managed Metadata fields
462466

463467
if (fieldType === "TaxonomyFieldType") {
464-
objects[columnInternalName] = {
468+
objects[fieldcolumnInternalName] = {
465469
__metadata: { type: "SP.Taxonomy.TaxonomyFieldValue" },
466470
Label: value[0]?.name ?? "",
467471
TermGuid: value[0]?.key ?? "11111111-1111-1111-1111-111111111111",
@@ -477,19 +481,19 @@ export class DynamicForm extends React.Component<
477481
// Other fields
478482

479483
if (fieldType === "Location") {
480-
objects[columnInternalName] = JSON.stringify(field.newValue);
484+
objects[fieldcolumnInternalName] = JSON.stringify(field.newValue);
481485
}
482486
if (fieldType === "Thumbnail") {
483487
if (additionalData) {
484488
const uploadedImage = await this.uploadImage(additionalData);
485-
objects[columnInternalName] = JSON.stringify({
489+
objects[fieldcolumnInternalName] = JSON.stringify({
486490
type: "thumbnail",
487491
fileName: uploadedImage.Name,
488492
serverRelativeUrl: uploadedImage.ServerRelativeUrl,
489493
id: uploadedImage.UniqueId,
490494
});
491495
} else {
492-
objects[columnInternalName] = null;
496+
objects[fieldcolumnInternalName] = null;
493497
}
494498
}
495499
}
@@ -1061,9 +1065,14 @@ export class DynamicForm extends React.Component<
10611065
// eslint-disable-next-line @typescript-eslint/no-explicit-any
10621066
const selectedTags: any = [];
10631067

1068+
let fieldName = field.InternalName;
1069+
if (fieldName.startsWith('_x') || fieldName.startsWith('_')) {
1070+
fieldName = `OData_${fieldName}`;
1071+
}
1072+
10641073
// If a SharePoint Item was loaded, get the field value from it
1065-
if (item !== null && item[field.InternalName]) {
1066-
value = item[field.InternalName];
1074+
if (item !== null && item[fieldName]) {
1075+
value = item[fieldName];
10671076
stringValue = value.toString();
10681077
} else {
10691078
defaultValue = field.DefaultValue;
@@ -1220,8 +1229,10 @@ export class DynamicForm extends React.Component<
12201229

12211230
// Setup DateTime fields
12221231
if (field.FieldType === "DateTime") {
1223-
if (item !== null && item[field.InternalName]) {
1224-
value = new Date(item[field.InternalName]);
1232+
1233+
if (item !== null && item[fieldName]) {
1234+
1235+
value = new Date(item[fieldName]);
12251236
stringValue = value.toISOString();
12261237
} else if (defaultValue === "[today]") {
12271238
defaultValue = new Date();

0 commit comments

Comments
 (0)