14

チュートリアルからすべての作業を行い、それを自分のデータに置き換えましたが、ハードコーディングされた状況です。たとえば、私が取り組んでいるチュートリアルでは、次のようにしています。

jQuery(document).ready(function(){ 
  jQuery("#list").jqGrid({
    url:'http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['ProductID','title', 'description','price','tax','notes'],
    colModel :[ 
      {name:'invid', index:'invid', width:55}, 
      {name:'invdate', index:'invdate', width:90}, 
      {name:'amount', index:'amount', width:80, align:'right'}, 
      {name:'tax', index:'tax', width:80, align:'right'}, 
      {name:'total', index:'total', width:80, align:'right'}, 
      {name:'note', index:'note', width:150, sortable:false} ],
    pager: jQuery('#pager'),
    rowNum:10,
    rowList:[10,20,30],
    sortname: 'title',
    sortorder: "desc",
    viewrecords: true,
    imgpath: 'http://127.0.0.1/products/public/themes/basic/images',
    caption: 'Product List'
  }); 
}); 

ただし、データを取得するために URL がハードコーディングされています。チュートリアルには次のものがあります。

jQuery(document).ready(function(){ 
  jQuery("#list").jqGrid({
    url:'example.php',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
    colModel :[ 
      {name:'invid', index:'invid', width:55}, 
      {name:'invdate', index:'invdate', width:90}, 
      {name:'amount', index:'amount', width:80, align:'right'}, 
      {name:'tax', index:'tax', width:80, align:'right'}, 
      {name:'total', index:'total', width:80, align:'right'}, 
      {name:'note', index:'note', width:150, sortable:false} ],
    pager: jQuery('#pager'),
    rowNum:10,
    rowList:[10,20,30],
    sortname: 'id',
    sortorder: "desc",
    viewrecords: true,
    imgpath: 'themes/basic/images',
    caption: 'My first grid'
  }); 
}); 

明らかに、クエリ文字列のデータは変更され、常に同じ URL が必要になるとは限りません: http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc

また、example.php を使用したチュートリアルでは、適切なデータを取得できるようにクエリ文字列変数が必要ですが、私が見つけた部分は表示されません。では、クエリ文字列を変更するにはどうすればよいですか? アイテムを動的に送信するにはどうすればよいですか? また、ハードコードされた URL のために、ページャー ボタンは次のようなものを送信します。

http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc?page=2&rows=10&sidx=productname&sord=desc&nd=1248988261293&_search=false

/test/the right variables のような URL を取得するにはどうすればよいですか? クエリ文字列を変更するにはどうすればよいですか?

助けてくれてありがとう。あまり明白ではないことを願っています。setGridParam({url:newvalue})を見つけましたが、使い方がわかりませんでした。

これがドキュメントです。チュートリアルは最初の部分の上部にあります。

編集:以下をありがとう。example.php を使用したチュートリアルで setGridParam を使用する方法を確認しようとしています。彼らは単にexample.phpを持っているだけで、htmlページからexample.phpページへのクエリ文字列変数をどのように取得したかわかりません。setGridParam はこれを達成するための正しい方法かもしれませんが、例のどこにもないため、最初のクエリ文字列変数をどのように渡したのかわかりません。

私はこれを行うことができることを知っています:

    function gridSearch()
    {
        $("#list").setGridParam(
            {

                  url:"http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc",
                page:1
            }
            ).trigger("reloadGrid");//Reload grid trigger
        return false
    }

<input id="sData" class="EditButton" type="submit" value="Search" onClick="return gridSearch()"/>

それはグリッドをリロードします(私はそれをテストしました;それは動作します)が、そもそもチュートリアルでどのようにアイテムを送信したのですか? ボタンをリロードせずに、最初にロードする変数を渡すだけの場合はどうすればよいですか?

4

3 に答える 3

46

グリッドを作成したら、URL を作成し、これを指定してグリッドのリロードをトリガーできます。

jQuery("#list").jqGrid().setGridParam({url : 'newUrl'}).trigger("reloadGrid")
于 2009-07-30T22:06:08.757 に答える
2

これを試すことができます:

jQuery("#list")
    .jqGrid()
    .setGridParam({
        data:'xml',
        url : 'newUrl'
    })
    .trigger("reloadGrid");
于 2012-08-03T06:21:19.370 に答える
1

js 関数で jqgrid js コードを記述したとします。したがって、そのメソッドでは、URL を動的に変数urlGetLstに渡します 。jqgrid コードでは、いくつかの属性を指定する必要があります。

url: urlGetLst,//(will be dynamic)
//and
loadonce: false

このオプションを使用すると、毎回指定された URLが呼び出され、jqgrid が新しいデータで更新されます。

そして、コードの下のurl call/executeでjqgrid load関数を呼び出す前に

$("#jqgridtab").GridUnload();
于 2014-06-05T07:26:31.850 に答える