Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DxDataGrid:一次验证多个编辑字段_Javascript_Angular_Typescript_Devextreme_Devextreme Angular - Fatal编程技术网

Javascript DxDataGrid:一次验证多个编辑字段

Javascript DxDataGrid:一次验证多个编辑字段,javascript,angular,typescript,devextreme,devextreme-angular,Javascript,Angular,Typescript,Devextreme,Devextreme Angular,我正在角度应用程序中使用DxDataGrid。在这个应用程序中,我想输入4个日期。现在我需要应用一些验证规则,它们分别适用于每个字段。 问题是,如果其中一个字段发生更改,我需要验证所有四个字段。例如:如果输入的endDate早于startDate,则在endDate字段中会出现预期的验证错误。如果我现在将开始日期更改为结束日期之前的某个时间,则结束日期字段中的验证错误仍然存在,因为该字段未重新验证 这就是我到目前为止所做的: <dx-data-grid> <dxi-col

我正在角度应用程序中使用DxDataGrid。在这个应用程序中,我想输入4个日期。现在我需要应用一些验证规则,它们分别适用于每个字段。 问题是,如果其中一个字段发生更改,我需要验证所有四个字段。例如:如果输入的endDate早于startDate,则在endDate字段中会出现预期的验证错误。如果我现在将开始日期更改为结束日期之前的某个时间,则结束日期字段中的验证错误仍然存在,因为该字段未重新验证

这就是我到目前为止所做的:

<dx-data-grid>

  <dxi-column dataField="inPeriodStart" caption="In-Period Start" dataType="date"">
    <dxi-validation-rule reevaluate="true" type="custom" message="Both start and end period has to be specified"
      [validationCallback]="validateStartAndEndInPeriod"></dxi-validation-rule>
    <dxi-validation-rule reevaluate="true" type="custom" message="Start has to be before end." [validationCallback]="validateStartBeforeEnd"></dxi-validation-rule>
    <dxi-validation-rule reevaluate="true" type="custom" message="Either In-Period or For-Period has to be specified."
      [validationCallback]="validateInOrForSpecified"></dxi-validation-rule>
      <dxi-validation-rule type="custom" [validationCallback]="verifyDate" message="In-Period Start must be a valid date"></dxi-validation-rule>
  </dxi-column>


  <dxi-column dataField="inPeriodEnd" caption="In-Period End" dataType="date">
    //same rules
  </dxi-column>


  <dxi-column dataField="forPeriodStart" caption="For-Period Start" dataType="date">
    //same rules
  </dxi-column>

  <dxi-column dataField="forPeriodEnd" caption="For-Period End" dataType="date">
    // same rules
  </dxi-column>
</dx-data-grid>


这可能是代码中的错误语法(重新评估,尝试放在方括号中)

我已经创建了一个下面的示例,我已经对名字和姓氏进行了相同的验证,请尝试您的用例并让我知道结果。


编辑:当编辑模式为表单时

谢谢,您的示例非常有效,但遗憾的是,它没有解决我的问题。我需要编辑mode=“form”。如果我在你的演示应用程序中更改它,它将不再工作。如果我在我的应用程序中将其更改为批处理,它可以正常工作,但UI需要处于editmode表单。我不知道您的datagrid处于表单编辑模式,但这里有一些解决方案,您可以尝试。