Событие вызова клика по последней нажатой строке в YUI - PullRequest
4 голосов
/ 11 июня 2010

У меня есть таблица данных YUI, и у меня есть функция, которая вызывается при нажатии на строку:

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

Я бы хотел вызвать функцию, подписанную на rowClickEvent, в строке, которая в данный момент выделена в таблице данных (строке, по которой был нажат последний раз).

Я пытался сделать что-то вроде этого:

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

но getSelectedRows () не возвращает ни одной строки. Как получить выделенную строку в таблице данных и затем вызвать функцию, связанную с rowClickEvent?

Спасибо

1 Ответ

1 голос
/ 10 июля 2010

Здесь представляет собой мощное приложение, когда я показываю функциональность данных YUI.См. Его исходный код. Чтобы получить хорошее представление о том, как использовать YUI, доступный для данных.

Я использую помощника, например

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]);
        }
    }
};

И когда я хочу подписаться на какое-то событие, я делаю следующее:

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");
     }
}

Надеюсь, это может быть полезно

...