如何比较两个单元格字段并验证 devextreme 数据网格中的一个条件

Posted

技术标签:

【中文标题】如何比较两个单元格字段并验证 devextreme 数据网格中的一个条件【英文标题】:how to compare two cell fields and validate one condition in a devextreme datagrid 【发布时间】:2021-11-05 15:28:06 【问题描述】:

我的目标是比较列InicioFinalizacion,但我不知道如何引用Inicio 来比较Finalizacion。 我想做这样的事情:

<CompareRule  comparisonType=("Inicio", ">")>

我试过了,但是没有用。这是我的代码:

        <DataGrid
          dataSource=rows_data
          keyExpr="ID"
          showBorders=true
          columnAutoWidth=true
        >
          <Scrolling mode="virtual" />
          <Paging enabled=false />
          <Editing
            mode="batch"
            allowUpdating=true
            allowAdding=true
            allowDeleting=true
            selectTextOnEditStart=this.state.selectTextOnEditStart
            startEditAction=this.state.startEditAction
          >
            <Texts
              deleteRow="Eliminar"
              addRow="Agregar nuevo estudio"
              allowUpdating="Actualizar información"
            />
          </Editing>

          <Column dataField="Centros de Estudios" style= width: "100%" >
            <Validator>
              <RequiredRule />
            </Validator>
          </Column>
          <Column dataField="Nivel" caption="Nivel" style= width: "100%" >
            <RequiredRule />
            <Lookup
              dataSource=OpcionesNivel
              valueExpr="ID"
              displayExpr="Name"
            />
          </Column>
          <Column
            dataField="Titulo obtenido"
            caption="Titulo"
            style= width: "100%" 
          >
            <Validator>
              <RequiredRule />
            </Validator>
            <Lookup
              dataSource=OpcionesTitulo
              valueExpr="ID"
              displayExpr="Name"
            />
          </Column>
          <Column dataField="Inicio" dataType="date" style= width: "100%" >
            <Validator>
              <RequiredRule />
            </Validator>
          </Column>
          <Column
            dataField="Finalización"
            dataType="date"
            style= width: "100%" 
          >
            <Validator>
              <CompareRule
                message="Fecha fin es menor a fecha inicial"
                comparisonType=("Inicio", ">")
              />
              <RequiredRule />
            </Validator>
          </Column>
        </DataGrid>

谁能帮我解决我的问题?

您好!

【问题讨论】:

我解决了我的问题,我必须添加组件“AsyncRule”,它使用 params.data 验证我的逻辑(它是一个具有行值的对象)。 【参考方案1】:
<Column
            dataField="Finalización"
            dataType="date"
            style= width: "100%" 
          >
            <RequiredRule />
            <AsyncRule
              message="Fecha de finalización debe de ser mayor a la inicio"
              validationCallback=this.asyncValidation
            />
          </Column>
 asyncValidation(params) 
    return new Promise(function executor(resolve) 
      let compare1 = params.data["Inicio"];
      let compare2 = params.data["Finalización"];
      if (compare2 < compare1) 
        resolve(false);
       else 
        resolve(true);
      
    );

【讨论】:

请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。

以上是关于如何比较两个单元格字段并验证 devextreme 数据网格中的一个条件的主要内容,如果未能解决你的问题,请参考以下文章

如何区分自定义单元格中的两个文本字段?

在 iOS 中,如何在两个单元格中的文本字段之间切换?

分别验证 DataGridColumn 单元格

如何比较两个datagridview行单元格的值?

swift4中的UITextfield验证 - 动态单元格

如何在表格视图单元格(每一行)中添加文本字段并为每个文本字段设置标签以访问它的文本