2017-07-10 1 views
-1

J'ai écrit la fonction pour la sélection de ligne. Elle ne met pas en surbrillance la ligne sélectionnée (parfois en surlignant parfois une autre ligne en surbrillance) et n'affiche pas les icônes comme je l'ai écrite. Voici le code multiselect : true, iconSet: "fontAwesome", datatype : "json", loadonce : true, rowNum : 10, rowList : [ 10, 20, 30 ], toppager:true, pager : '#prowed1', sortname : 'id', viewrecords : true, sortorder : "asc", editurl : "editGrid.html", onSelectRow : function(rowId) { var rowId = jQuery("#list1").jqGrid('getGridParam', 'selarrrow'); if (rowId.length > 1) { $("#list1_iledit").addClass('ui-state-disabled'); } },Ligne sélectionnée non mise en surbrillance dans jqgrid

$("#list1").jqGrid(
      "navGrid", 
      "#prowed1", 
      { 
       cloneToTop:true, 
       formatter : "checkboxFontAwesome4", 
       addicon:"fa fa-plus ", 
       add : true, 
       delicon:"fa fa-trash", 
       del : true, 
       searchicon:"fa fa-search", 
       search : true, 
       refreshicon:"fa fa-refresh", 
       refresh : true, 
       editicon:"fa fa-edit ", 
       edit : true, 
       saveicon : 'fa fa-floppy-o', 
       save : true, 

      },`{ // edit options 
       afterSubmit : function() { 
        location.reload(true); 
       }, 
       beforeShowForm : function(form) { 
        $("td .navButton navButton-ltr").hide(); 
       }, 
       closeAfterEdit : true 
      }, 
      { // add options 
       beforeShowForm : function(form) { 
        $("#buName").removeAttr("readonly"); 
       }, 
       closeAfterAdd : true, 
       clearAfterAdd : true 
      }, 
      { // del options 
       serializeDelData : function(postdata) { 
        return { 
         'buName' : $('#list1').jqGrid('getCell', 
           postdata.id, 'buName'), 
         'oper' : 'del' 
        } 
       } 
      } 

    );` $("#list1").jqGrid('inlineNav', "#prowed1", { 
     //cloneToTop:true, 
     //iconSet: "fontAwesome", 
     add : false, 
     edit : true, 
     editicon : 'fa fa-pencil-square-o', 
     save : true, 
     saveicon : 'fa fa-floppy-o', 
     editParams : { 
      aftersavefunc : function(id) { 
       jQuery('#list1').jqGrid('setSelection', id, false); 
      }, 
     }, 
    });` 
+1

Vous devez fournir ** la démo **, qui reproduit le problème. La raison de la plupart des problèmes avec mis en évidence: mauvaises données d'entrée ou mauvais 'colModel'. Chaque ligne de jqGrid a toujours l'attribut 'id' (rowid), qui devrait faire partie des données d'entrée: voir [ici] (https://free-jqgrid.github.io/getting-started/index.html#grid-internal -div). La valeur d'identifiant doit être ** unique **. Si vous avez des doublons d'identification, vous pourriez avoir des problèmes avec la sélection/surlignage des lignes. – Oleg

+0

Oui, il a le problème de id.Il contient id.So en double, comment dois-je supprimer cela? Parce que je prends les données de la base de données, donc je ne peux pas changer id.I signifie quel code dois-je ajouter? – Aishwarya

Répondre

0

Je pense que vous avez des problèmes avec identifiant unique dans les données. Vérifiez que les identifiants utilisés lorsque vous insérez des données dans la grille sont uniques et que vous n'avez pas de doublon.

Cordialement

1

Vous devez fournir la démo, qui reproduisent le problème. La raison du plus de problèmes avec mis en évidence: mauvaises données d'entrée ou faux colModel. Chaque ligne de jqGrid a toujours un attribut id (rowid), qui devrait faire partie des données d'entrée: voir here. La valeur d'identifiant doit être unique. Si vous avez des doublons d'identification, vous pourriez avoir des problèmes avec la sélection/surlignage des lignes.

Si vous remplissez les données de la base de données, vous pouvez utiliser les ID natifs des tables de la base de données pour créer des rowids uniques. Les tables de base de données n'autorisent pas les doublons d'ID. Pour pouvoir modifier les données dans la base de données, vous devez identifier les données éditées. Cette valeur unique pourrait être utilisée comme rowid. Si vous remplissez la grille par JOIN à partir de plusieurs tables, vous pouvez utiliser composé ID. Par exemple, si vous remplissez la grille avec les données de deux tables User et Location, alors le paar (user_id, location_id) est unique. Si user_id et location_id sont des nombres, vous pouvez utiliser user_id + "_" + location_id comme rowid. La valeur sera envoyée au serveur pendant l'édition et vous aurez des informations complètes pour trouver les données dans les tables, qui doivent être modifiées.