2010-05-31 9 views

risposta

15

Sì, ho usato quanto segue per evidenziare brevemente una riga appena aggiunta. Produce un effetto piacevole per permettere all'utente di sapere che c'è nuovi dati, e suona proprio come quello che stai cercando:

jQuery("#" + rowId, "#myGrid").effect("highlight", {}, 2000); 
+0

Grazie Justin - non ho visto questo nei documenti jqGrid - dovrei aggiungerlo? –

+0

Non c'è bisogno, questo è in realtà parte di jQuery stesso - http://docs.jquery.com/UI/Effects –

+0

Cheers! Stavo cercando questo +1 – Damien

1

Quali informazioni avete già sulla riga.

Avete la riga id? O il valore del campo che è contrassegnato come la chiave?

Crea la riga come definita in questo modo. Si noti che l'id della riga è uguale al valore della chiave.

<TR id=11 class="ui-widget-content jqgrow ui-row-ltr ui-state-highlight" role=row aria-selected=true><TD title=11 role=gridcell aria-describedby=list2_id>11</TD><TD title=2007-10-06 role=gridcell aria-describedby=list2_invdate>2007-10-06</TD><TD title="Client 1" role=gridcell aria-describedby=list2_name>Client 1</TD><TD style="TEXT-ALIGN: right" title=600.00 role=gridcell aria-describedby=list2_amount>600.00</TD><TD style="TEXT-ALIGN: right" title=120.00 role=gridcell aria-describedby=list2_tax>120.00</TD><TD style="TEXT-ALIGN: right" title=720.00 role=gridcell aria-describedby=list2_total>720.00</TD><TD title="" role=gridcell aria-describedby=list2_note>&nbsp;</TD></TR> 

Quindi così si potrebbe fare.

$("#tblselector).find("#+KeyValue").addClass("ui-state-highlight") 

Dipende molto da come viene aggiunta la riga. È possibile utilizzare l'evento afterInsertRow ma questo si attiva per ogni riga man mano che viene aggiunta alla griglia. Inoltre c'è questa nota sull'evento.

Nota: questo evento non viene generato se opzione GridView è impostata su true

Io non suggerisco di cambiare l'opzione GridView su false se si restituisce un sacco di righe e o le colonne in quanto avrà un grande impatto sulle prestazioni.

Avrei chiesto chiarimenti su come la riga viene aggiunta ma non ho abbastanza punti per i commenti.

2

Se ho ben capito si corregge che si desidera evidenziare una riga aggiunto rispetto di editing modulo (" + "nella barra di navigazione). La modifica del modulo supporta un evento afterComplete, che è possibile utilizzare per aggiungere alcune funzionalità post-editing. Per esempio, se si vuole avere l'effetto di evidenziazione con tutte le righe aggiunte, è possibile utilizzare l'impostazione generale per jQuery.jgrid.edit:

jQuery.extend(jQuery.jgrid.edit, { 
    reloadAfterSubmit: false, 
    afterComplete : function (response, postdata, formid) { 
     if (postdata.oper === "add") { // highlight on "add" only 
      var row = jQuery ("#"+$.jgrid.jqID(postdata.id), jQuery(this.gbox)); 
      row.effect("highlight", {color:"red"}, 3000); 
     } 
    } 
}); 

Se si sarà in uso row.effect("highlight", {}, 3000); (nessun colore rosso), si vedrà evidenziare effetti, ma un po 'non è così chiaro, perché la riga aggiunta verrà selezionata per impostazione predefinita.

È possibile modificare il codice in modo che utilizzi l'evidenziazione solo per una griglia selezionata.