2011-07-13 6 views
0

私はjQGrids(各タブには1つのグリッドが含まれています)を使用してデータを表示する3つのタブがあります。jQGridとjqueryタブを使用してグリッドの数を設定する方法

しかし、私はちょうど私のグリッドは完全に同じだと思っていますが、違いはデータを取得するために異なるURLを使用していることです。

だから私は唯一の異なるURLで各タブにある3つの似たgirdsを持っている:

First: url: '/Home/GetData?id=1' Second: url: '/Home/GetData?id=2' and Third: url: '/Home/GetData?id=3' 

ので、私はそれは私がクリックするURLを渡すことができ、一度だけ、それぞれのタブに比べてグリッドを宣言してもよいかもしれ考えていましたデータを読み込む?したがって、各タブでjQGridが新しいURLからデータを入力します。

いくつかのアイデアがありますか?

また、「jQGrid copy-paste」を減らす方法があるかもしれません。

ほとんどそれは私がグリッドのヘッダが迷子にタブを切り替えるいた場合、それが動作しているが、1つの小さな問題がある、 意味仕事を取得...といくつかのjqgridフォーマット:

UPDATE 0よく

がここに私のコードです:

$("#tabs").tabs({ 
      show: function (event, ui) { 

       if (ui.index == 0) { 
        //$("#Grid1").appendTo("#tab1"); 
        //$("#Grid1Pager").appendTo("#tab1"); 

        //When Appending only pager and grid div, header getting lost so i've append the whole grid html instead 
        $("#gbox_Grid1").appendTo("#tab1"); 

        changeGrid("#Grid1", 1); 
       } 

       else if (ui.index == 1) { 
        //$("#Grid1").appendTo("#tab2"); 
        //$("#Grid1Pager").appendTo("#tab2"); 

        $("#gbox_Grid1").appendTo("#tab2"); 

        changeGrid("#Grid1", 2); 
       } 

       else if (ui.index == 2) { 
        //$("#Grid1").appendTo("#tab3"); 
        //$("#Grid1Pager").appendTo("#tab3"); 

        $("#gbox_Grid1").appendTo("#tab3"); 

        changeGrid("#Grid1", 3); 
       } 
      } 
     }); 

function changeGrid(grid, id) { 
     $(grid).jqGrid('setGridParam', { 
      url: '/Home/GetData?id=' + id 
     }); 

     $(grid).trigger('reloadGrid'); 
    } 

UPDATE 1

すべての権利、私の代わりにのみ、グリッドのdivとページャを追加するグリッド全体を追加するコードを変更しました。それで、それはそのように働いています。

+1

。 com/appendTo /)**を使用して、あるタブから別のタブに '

'と '
'を含むdivを移動することができます。このような動きを[jQuery UIタブ](http://jqueryui.com/demos/tabs/#events)の 'select'または' show'イベントハンドラの中に置くことができます。その後、 'setGridParam'でグリッド' url'パラメータを変更し、 "reloadGrid"をトリガーすることができます – Oleg

+0

@Oleg質問を更新しました、どう思いますか? – Joper

答えて

0

基本的にタブを通常のボタンとして作成すると、新しいURLパラメータをグリッドに設定して再読み込みする機能が呼び出されます。私はあなたが列または似たようなソリューションに応じて、デフォルトのソートを設定する必要があります覚えておいてください。1.にページを設定

function changeGrid(grid, id) { 
    $(grid).jqGrid('setGridParam', { 
     url: '/Home/GetData?id=' + id, page: 1 
    }); 
    $(grid).trigger('reloadGrid'); 
} 

注:

機能は次のようなものでなければなりません。

UPDATE

あなたが本当にタブに行きたい場合は、「ショー」イベントハンドラを簡略化することができます。これを試してみてください ://api.jquery:あなたは[$ .prependTo](http://api.jquery.com/prependTo/)または[$ .appendTo](HTTPのようなjQueryのメソッドを使用することができます

$("#tabs").tabs({ 
    show: function (event, ui) { 
     var id = ui.index + 1; 

     $("#gbox_Grid1").appendTo("#tab" + id); 

     $("#Grid1").jqGrid('setGridParam', { 
      url: '/Home/GetData?id=' + id 
     }); 
     $("#Grid1").trigger('reloadGrid'); 
    } 
}); 
関連する問題