0

我有一个 YUI 数据表如下

YAHOO.example.Data = {
        bookorders: [
            {id:"po-0167", date:new Date(1980, 2, 24), quantity:1, amount:4, title:"A Book About Nothing"},
            {id:"po-0783", date:new Date("January 3, 1983"), quantity:null, amount:12.12345, title:"The Meaning of Life"},
            {id:"po-0297", date:new Date(1978, 11, 12), quantity:12, amount:1.25, title:"This Book Was Meant to Be Read Aloud"},
            {id:"po-1482", date:new Date("March 11, 1985"), quantity:6, amount:3.5, title:"Read Me Twice"}
        ]
    }

我向它添加了一个订阅事件

myDataTable.subscribe("rowClickEvent", function(args){   
            alert("inside click1");

            var rec = myDataTable.getSelectedRows()[0];
            .
            .
            .
            printTitle(record.title);
        });

问题是我无法获得选定的行。我有另一个函数 printTitle 来提醒单击该行的书的标题。

我设法使用 myDataTable.getSelectedRows()[0] 获得了 selectedRow。我更新了我的代码,但现在我似乎无法获得标题。

4

2 回答 2

1

我想你很接近。

尝试以下操作:

请注意“var selectedRecordId = myDatatable.getSelectedRows()[0];” 给你记录的ID。您可能需要执行“var selectedRecord = myDatatable.getRecord(id);” 得到你的记录。当你有记录时,你需要使用“var title = selectedRecord.getData('title');” 获得标题。

检查那些文档(帮助我回答): http: //developer.yahoo.com/yui/docs/YAHOO.widget.Record.html http://developer.yahoo.com/yui/docs/YAHOO.widget.DataTable .html

于 2012-09-13T05:42:56.187 回答
1

正在通过论坛寻找更多灵感,我偶然发现了这个

关于 yui 行点击事件的另一个问题

最后我用 getselectedrows 替换了

myDataTable.subscribe("rowClickEvent", function(args){   

            var record = this.getRecord(args.target);
            var title = record.getData("title");

            alert("inside click2 : " + title);

        });

它就像一个魅力

于 2012-09-13T05:47:52.953 回答