2010-06-11 3 views
4

j'ai un YUI DataTable et j'ai une fonction qui est invoquée lorsque je clique sur une ligne:événement d'appel de clic sur la dernière ligne sélectionnée dans YUI datatable

... 
YAHOO.keycoes.myDatatable = myDatatable; 
... 
myDatatable.subscribe("rowClickEvent", oneventclickrow); 
var oneventclickrow = function(args) { 
    ... 
} 

Je voudrais appeler la fonction souscrite rowClickEvent sur la ligne qui est actuellement mise en surbrillance dans le datatable (la ligne sur laquelle vous avez cliqué la dernière fois).

J'ai essayé de faire quelque chose comme ceci:

YAHOO.keycoes.myDatatable.getSelectedRows()[0].rowClickEvent() 

mais getSelectedRows() ne renvoie aucune ligne. Comment puis-je obtenir la ligne en surbrillance dans le datatable, puis appeler la fonction associée à rowClickEvent?

Merci

+1

Javi - Il y a forum dédié à la discusion de YUI DataTable - http://yuilibrary.com/forum/viewforum.php?f=90 - si vous ne trouvez pas une bonne réponse ici sur SO, vous pouvez essayer là-bas. -Eric –

Répondre

1

Here va une application puissante quand je montre YUI datatable fonctionalité. Voir son code source Pour bien comprendre comment j'utilise YUI datatable.

-je utiliser une aide comme

var datatableUtils = { 
    getSelected:function(datatable) { 
     var records = datatable.getRecordSet().getRecords(); 

     for(var i = 0; i < records.length; i++) { 
      if(datatable.isSelected(records[i])) { 
       return records[i]; 
      } 
     } 

     return null; 
    }, 
    removeAll:function(datatable) { 
     var records = datatable.getRecordSet().getRecords(); 

     for(var i = (records.length - 1); i >= 0; i--) { 
      datatable.deleteRow(records[i]); 
     } 
    }, 
    removeSelected:function(datatable) { 
     datatable.deleteRow(datatableUtils.getSelected(datatable)); 
    }, 
    selectAll:function(datatable) { 
     var records = datatable.getRecordSet().getRecords(); 

     for(var i = 0; i < records.length; i++) { 
      datatable.selectRow(records[i]); 
     } 
    } 
}; 

Et quand je veux souscrire un événement, je fais comme suit

datatable.user.subscribe("rowClickEvent", function(args) { 
    /** 
    * Keep in mind this keyword refers To YUI datatable instance 
    * 
    * args.target allows yui get row clicked 
    */ 

    if(this.isSelected(args.target)) { 
     alert("row selected"); 
    } 
} 

J'espère qu'il peut être utile

Questions connexes