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'
  }); 
}); 

显然,我的查询字符串中的数据会改变,我不会总是想要相同的网址: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/right 变量这样的 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代码。因此,在该方法中,在变量urlGetLst中动态传递您的 url 在 jqgrid 代码中,我们必须指定一些属性:

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

使用此选项,它将每次调用指定的 url并用新数据刷新 jqgrid。

在使用url调用/执行下面的代码调用 jqgrid 加载函数之前

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