如何在devextreme控件的dx-list中添加所需的角度验证?

时间:2018-08-20 07:34:22

标签: javascript angular typescript devextreme

我想在devextreme控件的dx-list中添加所需的字段验证,以用于角度。

这是我的html代码段。

<dx-list class="checkbox-list" id="chkCentreCareTypes" [dataSource]="careTypes" (onSelectionChanged)="onCareTypeChanged($event)"
                                    selectionMode="multiple" displayExpr="text" valueExpr="value" [showSelectionControls]="true">
                                </dx-list>

其输出如下。

enter image description here

1 个答案:

答案 0 :(得分:0)

一切都始于以下概念; DxList 不被视为 ui 编辑,因此 dxValidate 不会自然地对其起作用。

所以你需要为它设计一个自定义验证。

以下是有关如何执行此操作的简单代码。

html

<dx-list #listx>
   <dx-validator [adapter]="adapterConfig" validationGroup="validationGroup">
      <dxi-validation-rule type="custom" [validationCallback]="validationCallback"></dxi-validation-rule>
      </dx-validator>
   </dx-list>

ts

@ViewChild("listx", {static: false}) listx: DxListComponent;

borderStyle: string = "none";
adapterConfig = {
   getValue: () => {
      return this.listx?.selectedItems?.length; //-- value to be validated
   },
   applyValidationResults: (e) => {
      this.borderStyle = e.isValid ? "none" : "1px solid red";
   }
};

validationCallback(params) {
   return params.value!=0;
}