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

より多くのインスピレーションを得るためにフォーラムを探していました私はこれに遭遇しました

ゆい行クリックイベントに関する別の質問

最後に、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 に答える
1

私はあなたが近くにいると思います。

次のことを試してください。

「varselectedRecordId=myDatatable.getSelectedRows()[0];」に注意してください。レコードのIDを教えてください。「varselectedRecord=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 に答える