「javascript/Yahoo UI Library/DataTable」の編集履歴(バックアップ)一覧はこちら

javascript/Yahoo UI Library/DataTable」(2008/11/01 (土) 18:51:45) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#contents * javascriptで表(データテーブル)を表示する(Yahoo UI Library: DataTable(2.6.0)) - Yahoo UI LibraryのDataTableライブラリ -- [[http://developer.yahoo.com/yui/datatable/:http://developer.yahoo.com/yui/datatable/]] - データはYahoo UI LibraryのDataSourceを使用する。 ** サンプル - 簡単なサンプル #html2(){{{ <div id="myDataTable"></div> }}} *** 事前準備 - 必要ライブラリの読み込み(使用する機能によって増減します) #highlight(html){{ <!-- Dependencies --> <link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.6.0/build/datatable/assets/skins/sam/datatable.css"> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/element/element-beta-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datasource/datasource-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/json/json-min.js"></script> <!-- OPTIONAL: Connection (enables XHR) --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/connection/connection-min.js"></script> <!-- Source files --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datatable/datatable-min.js"></script> }} - bodyのスタイル指定 #highlight(html){{ <body class="yui-skin-sam"> }} - 表を置く場所指定 #highlight(html){{ <div id="myDataTable"></div> }} - データソースなどの準備 #highlight(linenumber,javascript){{ YAHOO.util.Event.onDOMReady(function() { //データ var myData = [ {name:"鈴木", kokugo:100, sugaku:60, rika:70, shakai:50, eigo:95}, {name:"佐藤", kokugo:50, sugaku:100, rika:100, shakai:70, eigo:45}, {name:"小林", kokugo:70, sugaku:70, rika:70, shakai:70, eigo:70}, {name:"中村", kokugo:75, sugaku:95, rika:80, shakai:80, eigo:95}, {name:"高橋", kokugo:80, sugaku:50, rika:80, shakai:90, eigo:90} ]; //データソース var myDataSource = new YAHOO.util.DataSource(myData); myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; myDataSource.responseSchema = { fields: [ "name", {key:"kokugo", parser:"number"}, {key:"sugaku", parser:"number"}, {key:"rika", parser:"number"}, {key:"shakai", parser:"number"}, {key:"eigo", parser:"number"} ] }; //以下データテーブルの処理記述・・・ //データテーブル var myColumnDefs = [ {key:"name", label:"名前"}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource); }); }} #javascript(){{ <!-- Dependencies --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/element/element-beta-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datasource/datasource-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/json/json-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datatable/datatable-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/dragdrop/dragdrop-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/paginator/paginator-min.js"></script> <!-- OPTIONAL: Connection (enables XHR) --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/connection/connection-min.js"></script> <script type="text/javascript"> <!-- YAHOO.util.Event.onDOMReady(function() { var cssLink = document.createElement("link"); cssLink.type = "text/css"; cssLink.rel = "stylesheet"; cssLink.href = "http://yui.yahooapis.com/2.6.0/build/datatable/assets/skins/sam/datatable.css"; document.getElementsByTagName("head")[0].appendChild(cssLink); document.body.className = "yui-skin-sam"; //データ var myData = [ {name:"鈴木", kokugo:100, sugaku:60, rika:70, shakai:50, eigo:95}, {name:"佐藤", kokugo:50, sugaku:100, rika:100, shakai:70, eigo:45}, {name:"小林", kokugo:70, sugaku:70, rika:70, shakai:70, eigo:70}, {name:"中村", kokugo:75, sugaku:95, rika:80, shakai:80, eigo:95}, {name:"高橋", kokugo:80, sugaku:50, rika:80, shakai:90, eigo:90} ]; //データソース var myDataSource = new YAHOO.util.DataSource(myData); myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; myDataSource.responseSchema = { fields: [ "name", {key:"kokugo", parser:"number"}, {key:"sugaku", parser:"number"}, {key:"rika", parser:"number"}, {key:"shakai", parser:"number"}, {key:"eigo", parser:"number"} ] }; //データテーブル var myColumnDefs = [ {key:"name", label:"名前"}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource); }); --> </script> }} ** 逆引き *** ソートさせたい。 - カラム定義設定箇所で &color(red){sortable:true}; を指定 #highlight(linenumber,javascript){{ var myColumnDefs = [ {key:"name", label:"名前", sortable:true}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; }} -- 数値を数値でソートさせるにはデータソースのresponseSchema設定箇所で&color(red){parser:"number"};を指定すること。&br;指定しないと文字列ソートされる。 *** カラムの幅を調整できるようにしたい。 - カラム定義設定箇所で &color(red){resizeable:true}; を指定 #highlight(linenumber,javascript){{ var myColumnDefs = [ {key:"name", label:"名前", resizeable:true}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; }} -- 指定しても動かない場合、dragdropライブラリを追加してるか確認 *** 数値を桁区切りしたい。 - カラム定義設定箇所で &color(red){formatter:"number"}; を指定 #highlight(linenumber,javascript){{ var myColumnDefs = [ {key:"name", label:"名前", formatter:"number"}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; }} -- formatterオプションは他にも"button"、"checkbox"、"currency"、"date"、etc..などの設定値がある。また、独自のフォーマットも作成できる。 *** ページ繰り機能をつけたい。 - YAHOO.widget.Paginatorを使用する。 #highlight(linenumber,javascript){{ var oConfigs = { paginator: new YAHOO.widget.Paginator({ rowsPerPage: 30 }) }; var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource, oConfigs); }} -- paginatorライブラリ,cssを追加する必要がある。 *** マウスオーバーで行をハイライトさせたい。 #highlight(linenumber,javascript){{ var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource, oConfigs); myDataTable.subscribe("rowMouseoverEvent", myDataTable.onEventHighlightRow); myDataTable.subscribe("rowMouseoutEvent", myDataTable.onEventUnhighlightRow); }} *** 行を選択状態にしたい。 - 1行選択 #highlight(linenumber,javascript){{ var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource, oConfigs); myDataTable.set("selectionMode", "single"); myDataTable.subscribe("rowClickEvent", myDataTable.onEventSelectRow); }} - 複数行選択可 #highlight(linenumber,javascript){{ var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource, oConfigs); myDataTable.subscribe("rowClickEvent", myDataTable.onEventSelectRow); }}
#contents * javascriptで表(データテーブル)を表示する(Yahoo UI Library: DataTable(2.6.0)) - Yahoo UI LibraryのDataTableライブラリ -- [[http://developer.yahoo.com/yui/datatable/:http://developer.yahoo.com/yui/datatable/]] - データはYahoo UI LibraryのDataSourceを使用する。 ** サンプル - 簡単なサンプル #html2(){{{ <div id="myDataTable"></div> }}} *** 事前準備 - 必要ライブラリの読み込み(使用する機能によって増減します) #highlight(html){{ <!-- Dependencies --> <link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.6.0/build/datatable/assets/skins/sam/datatable.css"> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/element/element-beta-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datasource/datasource-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/json/json-min.js"></script> <!-- OPTIONAL: Connection (enables XHR) --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/connection/connection-min.js"></script> <!-- Source files --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datatable/datatable-min.js"></script> }} - bodyのスタイル指定 #highlight(html){{ <body class="yui-skin-sam"> }} - 表を置く場所指定 #highlight(html){{ <div id="myDataTable"></div> }} - データソースなどの準備 #highlight(linenumber,javascript){{ YAHOO.util.Event.onDOMReady(function() { //データ var myData = [ {name:"鈴木", kokugo:100, sugaku:60, rika:70, shakai:50, eigo:95}, {name:"佐藤", kokugo:50, sugaku:100, rika:100, shakai:70, eigo:45}, {name:"小林", kokugo:70, sugaku:70, rika:70, shakai:70, eigo:70}, {name:"中村", kokugo:75, sugaku:95, rika:80, shakai:80, eigo:95}, {name:"高橋", kokugo:80, sugaku:50, rika:80, shakai:90, eigo:90} ]; //データソース var myDataSource = new YAHOO.util.DataSource(myData); myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; myDataSource.responseSchema = { fields: [ "name", {key:"kokugo", parser:"number"}, {key:"sugaku", parser:"number"}, {key:"rika", parser:"number"}, {key:"shakai", parser:"number"}, {key:"eigo", parser:"number"} ] }; //以下データテーブルの処理記述・・・ //データテーブル var myColumnDefs = [ {key:"name", label:"名前"}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource); }); }} #javascript(){{ <!-- Dependencies --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/element/element-beta-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datasource/datasource-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/json/json-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/datatable/datatable-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/dragdrop/dragdrop-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/paginator/paginator-min.js"></script> <!-- OPTIONAL: Connection (enables XHR) --> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/connection/connection-min.js"></script> <script type="text/javascript"> <!-- YAHOO.util.Event.onDOMReady(function() { var cssLink = document.createElement("link"); cssLink.type = "text/css"; cssLink.rel = "stylesheet"; cssLink.href = "http://yui.yahooapis.com/2.6.0/build/datatable/assets/skins/sam/datatable.css"; document.getElementsByTagName("head")[0].appendChild(cssLink); document.body.className = "yui-skin-sam"; //データ var myData = [ {name:"鈴木", kokugo:100, sugaku:60, rika:70, shakai:50, eigo:95}, {name:"佐藤", kokugo:50, sugaku:100, rika:100, shakai:70, eigo:45}, {name:"小林", kokugo:70, sugaku:70, rika:70, shakai:70, eigo:70}, {name:"中村", kokugo:75, sugaku:95, rika:80, shakai:80, eigo:95}, {name:"高橋", kokugo:80, sugaku:50, rika:80, shakai:90, eigo:90} ]; //データソース var myDataSource = new YAHOO.util.DataSource(myData); myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; myDataSource.responseSchema = { fields: [ "name", {key:"kokugo", parser:"number"}, {key:"sugaku", parser:"number"}, {key:"rika", parser:"number"}, {key:"shakai", parser:"number"}, {key:"eigo", parser:"number"} ] }; //データテーブル var myColumnDefs = [ {key:"name", label:"名前"}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource); }); --> </script> }} ** 逆引き *** ソートさせたい。 - カラム定義設定箇所で &color(red){sortable:true}; を指定 #highlight(linenumber,javascript){{ var myColumnDefs = [ {key:"name", label:"名前", sortable:true}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; }} -- 数値を数値でソートさせるにはデータソースのresponseSchema設定箇所で&color(red){parser:"number"};を指定すること。&br;指定しないと文字列ソートされる。 *** カラムの幅を調整できるようにしたい。 - カラム定義設定箇所で &color(red){resizeable:true}; を指定 #highlight(linenumber,javascript){{ var myColumnDefs = [ {key:"name", label:"名前", resizeable:true}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; }} -- 指定しても動かない場合、dragdropライブラリを追加してるか確認 *** 数値を桁区切りしたい。 - カラム定義設定箇所で &color(red){formatter:"number"}; を指定 #highlight(linenumber,javascript){{ var myColumnDefs = [ {key:"name", label:"名前", formatter:"number"}, {key:"kokugo", label:"国語"}, {key:"sugaku", label:"数学"}, {key:"rika", label:"理科"}, {key:"shakai", label:"社会"}, {key:"eigo", label:"英語"} ]; }} -- formatterオプションは他にも"button"、"checkbox"、"currency"、"date"、etc..などの設定値がある。また、独自のフォーマットも作成できる。 *** ページ繰り機能をつけたい。 - YAHOO.widget.Paginatorを使用する。 #highlight(linenumber,javascript){{ var oConfigs = { paginator: new YAHOO.widget.Paginator({ rowsPerPage: 30 }) }; var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource, oConfigs); }} -- paginatorライブラリ,cssを追加する必要がある。 *** マウスオーバーで行をハイライトさせたい。 #highlight(linenumber,javascript){{ var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource); myDataTable.subscribe("rowMouseoverEvent", myDataTable.onEventHighlightRow); myDataTable.subscribe("rowMouseoutEvent", myDataTable.onEventUnhighlightRow); }} *** 行を選択状態にしたい。 - 1行選択 #highlight(linenumber,javascript){{ var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource); myDataTable.set("selectionMode", "single"); myDataTable.subscribe("rowClickEvent", myDataTable.onEventSelectRow); }} - 複数行選択可 #highlight(linenumber,javascript){{ var myDataTable = new YAHOO.widget.DataTable("myDataTable", myColumnDefs, myDataSource); myDataTable.subscribe("rowClickEvent", myDataTable.onEventSelectRow); }}

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー