2

我在 Angular 应用程序中使用 DxDataGrid。在这个应用程序中,我想输入 4 个日期。现在我需要应用一些验证规则,它们分别适用于每个字段。问题是如果其中一个字段发生更改,我需要验证所有四个字段。例如:如果我输入一个在 startDate 之前的 endDate,我会在 endDate 字段中得到预期的验证错误。如果我现在将startDate更改为 endDate之前的某个时间,则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>

我该如何解决这个问题?感谢您的任何意见

4

1 回答 1

0

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

我创建了以下示例,并对名字和姓氏进行了相同的验证,请尝试您的用例并让我知道结果。 https://codesandbox.io/s/0x28kn2v4n

编辑:当编辑模式为https://www.devexpress.com/Support/Center/Question/Details/T429488/dxdatagrid-how-to-force-row-validation-if-there-are-no-changes-在表单编辑模式

于 2019-01-07T12:49:30.503 回答