- ベストアンサー
テーブルにsuper tablesを適用する方法
- 「jquery.csv2table.js」から生成されたテーブルに「super tables」を適用したい。
- csv2tablesを使用して、テーブルの作成・表示はできるのですが、一部の行と列を固定したいと考えています。
- 以下のサイトを参考にスクリプトを追加していますが、エラーが表示され、固定された表示になりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
csv2table、superTableはおろかjqueryも殆ど触ったことがないので参考程度にしてください。 superTableの第一引数はtable要素のidを指定しないといけないのではないかと思います。 で、csv2tableで作られたtableにはidが設定されていません。 ですので自分で設定しなければいけないようです。 また、確実にcsv2tableでtableが作成された後にsuperTableの処理が動くように onloadを使わないといけないのかなと思います。 正しいやり方かわかりませんが、 csv2table.jsに var tableHtm=$.csv2table._doc.getElementById(id).innerHTML="<table>"+htm+"</table>"; というようなコードがあると思いますので、これを var tableHtm=$.csv2table._doc.getElementById(id).innerHTML="<table id='"+op.tableId+"'>"+htm+"</table>"; に変更しtableのIDを設定できるようにします。 そして、 om7700さんのソースコードの $('#view1').csv2table('./test.csv'); を $('#view1').csv2table('./test.csv', {tableId : 'hoge' ,onload : function(id,op,data,array) { new superTable("hoge", { cssSkin : "sDefault", headerRows : 1, fixedCols : 3 }); } }); と変更してtableにIDを設定し、tableが出来上がったあとにsuperTableの処理が動くようにします。 IE8ではとりあえず動きました。
お礼
yamada_g様。 示された通りに修正したところ、期待通りの動作となりました。Javascriptは勉強を始めたばかりで「csv2table.js」自体のソースを確認するということまで考えがおよびませんでした。もっと勉強してyamada_g様のような考え方ができるようになれたらと思います。 本当に助かりました。ありがとうございます。