【问题标题】:Creating a custom datatable in Salesforce that allows editing a Time field在 Salesforce 中创建允许编辑时间字段的自定义数据表
【发布时间】:2023-02-02 20:05:21
【问题描述】:

我正在创建一个自定义闪电数据表组件,我想在其中显示我创建的自定义对象的一些字段。要显示的其中一个字段 Start_Time__c 属于时间类型。

我从文档中发现要显示此字段,我需要在 lightning-datatable 中的列定义中使用类型“日期”(如果我在这里错了请告诉我,还有更好的方法来显示时间)。

我的一切都显示正常,并且可以更新我的代码以允许 Start_Time__c 列可编辑。

问题是当我实际编辑包含开始时间的单元格时尝试保存时出现错误。

我的保存处理程序看起来像这样(主要从文档中复制):

const fields = {};
         fields[ID_FIELD.fieldApiName] = event.detail.draftValues[0].Id;
         fields[START_TIME.fieldApiName] = event.detail.draftValues[0].Start_Time__c;

         const recordInput = {fields};
         
          updateRecord(recordInput).then(() => {
            this.dispatchEvent(
                new ShowToastEvent({
                    title: 'Success',
                    message: 'Contact updated',
                    variant: 'success'
                })
            );

            // Display fresh data in the datatable
            return refreshApex(this.agendaItems).then(() => {
                // Clear all draft values in the datatable
                this.draftValues = [];
            });
          }).catch(error => {
            this.dispatchEvent(
                new ShowToastEvent({
                    title: 'Error updating or reloading record',
                    message: error.body.message,
                    variant: 'error'
                })
            );
          });

当我尝试保存时,出现此错误: 字段“Start_Time__c”的值不是 ISO 8601 格式,值:1970-01-01T15:00:00.000Z,运行时类:java.lang.String”

我假设在编辑字段时传递我从数据表返回的值应该有效,因为我只是从保存事件传递更新的字段。

我如何正确处理这个时间字段(由于数据表仅支持日期类型,它作为 DateTime 出现)?

【问题讨论】:

    标签: salesforce apex salesforce-lightning


    【解决方案1】:

    我建议在将值传递到字段数组之前去除值的日期部分。

    【讨论】:

      猜你喜欢
      • 2011-07-28
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 2020-06-21
      相关资源
      最近更新 更多