IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

React Discussion :

Material react table - Edition de ligne


Sujet :

React

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Par défaut Material react table - Edition de ligne
    Bonjour,

    Dans mon appli React, j'utilise une Material React Table (https://www.material-react-table.com/)
    J'active le mode Edition pour chaque ligne, en mode 'fenêtre modale'

    Le problème vient des boutons d'action de la fenêtre modale, de type MRT_EditActionButtons :
    J'ai bien un bouton Cancel et un bouton Save, mais les actions sont inversées : si je clique sur Cancel, je vois les modifications se répercuter dans ma table, si je clique sur Save, la fenêtre se ferme et rien ne se passe dans la table.

    Autre question : comment customiser ces 2 boutons (texte, couleur, ...)

    pour info, ma version de la librairie : "material-react-table": "^3.2.1",

    Ca vient de ma config, ou c'est un bug ?

    Merci,

    Nico

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Par défaut
    En fait, quand je laisse le formulaire de modification par défaut comme dans l'exemple, ça fonctionne :

    <DialogContent>
    {internalEditComponents}
    </DialogContent>

    Ce que je veux, c'est customiser les champs du formulaire.

    Sur chaque ligne de ma table, dans RowActions, j'ai un bouton qui affiche le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    renderRowActions: ({ row, table }) => (
          <Box sx={{ display: 'flex', gap: '1rem' }}>
            <Tooltip title="Editer">
              <IconButton onClick={() => {
                  table.setEditingRow(row)
                }}
              >
                <EditIcon />
              </IconButton>
            </Tooltip>
          ..........
    Dans mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    renderEditRowDialogContent: ({ table, row, internalEditComponents }) => (
          <>
            <DialogTitle className={styles.form_title}>Titre</DialogTitle>
            <DialogContent>
              {/*internalEditComponents*/} {/* or render custom edit components here */}
              {<form onSubmit={(e) => e.preventDefault()}>
                <Grid container direction="row" justify="flex-start" alignItems="flex-start" spacing={2} className={styles.form_grid}>
                  ..........
                  <FormControl>
                    <InputLabel>Priorité</InputLabel>
                    <Select value={row.original.priorite} label="Priorité" name="priorite"
                            onChange={(e) => {
                              row.original.priorite = e.target.value
                            }}
                            className={styles.select}
                    >
                      {
                        priorite.map(function(item, i){
                          return <MenuItem value={item.id}>{item.nom}</MenuItem>;
                        })
                      }
                    </Select>
                  </FormControl>
                  ..........
             </Grid>
          </form>}
            </DialogContent>
            <DialogActions>
              <MRT_EditActionButtons variant="text" table={table} row={row} />          
            </DialogActions>
          </>
    Et là, ça modifie la table quand je clique sur Cancel, et ça ne fait rien quand je clique sur Save.
    Mais si je rouvre le formulaire une deuxième fois, il est initialisé avec les valeurs que j'ai modifié la première fois

    Une idée de ce qui cloche?


    Nico

Discussions similaires

  1. [SWT][table] supprimer une ligne.
    Par Mireyu_c dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 16/10/2006, 10h59
  2. [SQL2K] Pb de taille de table et de ligne
    Par maitrebn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/09/2006, 15h26
  3. Réponses: 2
    Dernier message: 13/07/2006, 17h01
  4. Une requête pour éditer plusieurs lignes.
    Par Anduriel dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/05/2006, 20h24
  5. Table.Edit
    Par alainvh dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/04/2006, 18h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo