es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tabla de materiales – Validación de celda editable.

Estoy utilizando Material Table para mostrar datos de tabla. Quiero aplicar validación en el campo de apellido. Si la longitud de surname es menor a 3, debería mostrar un mensaje de error muy corto en color rojo debajo del campo de entrada.

¿Cómo se puede lograr esto? El código de ejemplo se puede encontrar aquí: https://codesandbox.io/s/misty-breeze-corjj?file=/src/App.tsx

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para aplicar validación en el campo surname en la tabla de Material, se puede utilizar la propiedad customFilterAndSearch de la definición de la columna.

    1. Añadir la propiedad customFilterAndSearch al objeto column para el campo surname en el array de columns:
    {
      title: 'Apellido',
      field: 'surname',
      customFilterAndSearch: (term, rowData) => {
        return rowData.surname.length > 2;
      },
      // ... otras propiedades
    }
    
    1. Modificar el método render del componente MaterialTable para comprobar la longitud del campo surname y mostrar el mensaje de error si es menor de 3:
    render: () => {
      return (
        <>
          {state.surname.length < 3 && (
            <span style="{{" color:="" 'red'="" }}="">demasiado corto</span>
          )}
          <materialtable title="Ejemplo editable" columns="{state.columns}" data="{[state]}" editable="{{" onrowupdate:="" (newdata,="" olddata)="">
                new Promise((resolve, reject) => {
                  setTimeout(() => {
                    const dataUpdate = [...state.data];
                    const index = oldData.tableData.id;
                    dataUpdate[index] = newData;
                    setState({ ...state, data: dataUpdate });
                    resolve();
                  }, 1000);
                }),
            }}
          />
    
      );
    }
    

    Este código mostrará el mensaje de error “demasiado corto” en rojo debajo del campo de entrada de surname si su longitud es menor de 3.

    Puede ver y probar el código actualizado en este CodeSandbox: https://codesandbox.io/s/custom-validation-in-material-table-corjj?file=/src/App.tsx

Comments are closed.