从您单击的行上的列中获取数据

时间:2012-09-13 02:43:14

标签: javascript yui

我有一个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。我更新了我的代码,但现在我似乎无法获得标题。

2 个答案:

答案 0 :(得分:2)

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

another question on yui row click event

最后我用

替换了getselectedrows
myDataTable.subscribe("rowClickEvent", function(args){   

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

            alert("inside click2 : " + title);

        });

它就像一个魅力

答案 1 :(得分: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