以下がJavsScript部分。
var mygrid;
onload=function(){
mygrid = new dhtmlXGridObject('dhtmlxGrid');
mygrid.imgURL = "imgs/";
mygrid.setHeader("Site Name,");
mygrid.setInitWidths("100,0"); // 2カラム目は0pixelにして表示させない
mygrid.setColAlign("left,left");
mygrid.setColTypes("ro,ro");
mygrid.setColSorting("str,str");
mygrid.init();
mygrid.loadXML("list.xml");
mygrid.onRowSelect=onrowsel;
}
onrowsel=function(id,u){
// クリックした行の2カラム目に表示されていないがURLが埋め込まれているので
// そのURLを取得してページ移動させる
url=mygrid.cells(id,1).getValue();
window.open(url,"_self);
}
以下が、list.xmlのイメージ。
<?xml version="1.0" encoding="EUC-JP"?>
<rows>
<row>
<cell>Yahoo! Japan</cell>
<cell>http://www.yahoo.co.jp</cell>
</row>
<row>
<cell>Google</cell>
<cell>http://www.google.co.jp</cell>
</row>
</rows>
上記のようにすると、クリックした行に仕込んでおいたURLへジャンプさせることが出来ると思います。
ちなみに、チェックはしていないので、初歩ミス等はお許し下さいw
9 件のコメント:
ソースの提供ありがとうございます。
コメント付きですごくわかりやすかったです!
しかし、表示はされるもののクリックしてもジャンプしません。
単純にポップアップブロックかなと思いましたが違うようです。
window.open(url,"_self);
これ、ミスですね、
window.open(url,"_self");
です。
これじゃ駄目でしょうか?
ブラウザでJavaScriptエラーが出ていたので私もその部分には気づいて修正してみました。
エラーは消えて表示も正しく出来ています。
各セルをクリックするとセルに色がついて選択できるのですが、なぜかリンク先にジャンプが出来ず困っています。
ローカルで動かしていますが問題ないですよね?
こんにちは、返事が遅れました。
バージョン違いのせいかもしれません。
(旧)
mygrid.onRowSelect=onrowsel;
(新)
mygrid.setOnRowSelectHandler(onrowsel);
(旧)
onrowsel=function(i,u){
(新)
function onrowsel(i){
これで如何でしょうか?
早速、試してみました。
表示時はエラーはありませんがクリックするとJavaScriptエラーが出ます。
とりあえず下記のURLにアップしてみました。
http://www.wakayama.com/test/kosa.html
typoしていました・・・・。
申し訳ありません!!
誤)
function onrowsel(i){
正)
function onrowsel(id){
おぉ~ ありがとうございました!
無事にリンク先へジャンプすることが出来ました。
しかし、カラム数を増やすと動作しません。
応用でxmlの3カラム目にURLを記述し
url=mygrid.cells(id,2).getValue();
に変更してみましたがエラーが出ます。
もしかしてカラムは増やすことは出来ないのでしょうか?
サンプル
http://www.wakayama.com/test/kosa.html
こんにちは。
ソースを見てみた感じだと、
mygrid.setHeader("Site Name,Site Name");
ここで、最後にカンマが入っていないので、3カラム目が作成されていないのではないでしょうか?
mygrid.setHeader("Site Name,Site Name,");
こんな感じでどうでしょうか?
私はFireFox2とFireBugというのでデバッグしていますが、
その時のエラー内容なんかをよく見ると解決方法が見えてくると思います。
#ちなみに明日から社員旅行で4日間海外逃亡です;-)
ご指摘の通り「カンマ」が抜けておりました。
お恥ずかしい限りです・・・
長期に渡りお付き合いして頂きありがとございました。本当に感謝です!!!
社員旅行で海外ですか?!羨ましいです。
また何かあれば質問させて頂きます~
コメントを投稿