2011-11-17 55 views
0

自从几个月前我一直在参观这个论坛,没有注册,我真的很喜欢它。所以,提前感谢所有成员。现在我想提出我的第一个问题。如何从服务器端的jqgrid获取搜索参数?

我一直在使用Jqgrid,我已经设法让它显示行和按钮,但现在我需要做一个搜索,一个复杂的,我认为“自动”jqgrid将发送参数到服务器,我的意思是:

元数,searchField,索珀,searchOper,S值,搜索字符串,sFilter和/或过滤器

我不知道在所有哪些它必须发送,并且我认为它会发送'page','rows'和'sord'。但我失去了一些东西,因为,例如,我能得到“页面”,“行”,并使用“SORD”:

$limit = $this->getRequest()->getParam('rows', 10); 

,但我用得到什么:

$params = $_REQUEST['filters'] 

$params = $this->getRequest()->getParam('sFilter'); 

我使用PHP,Zend和json。

我没有发布任何代码,因为我的疑问是一种通用的,但我会做,如果它需要。

我搜索了很多,并阅读文档,但我只是没有看到它。我会感谢您的帮助,谢谢!

回答

1

那么,我会回答我自己的问题只是为了分享。我只是添加了'loadonce',它工作。

这是我的实际JavaScript代码的版本:

$(document).ready(function() { 

var filtro = {"groupOp":"AND","rules":[{"field":"Col1","op":"eq","data":""}, 
            {"field":"Col3","op":"eq","data":""} 
            {"field":"Col4","op":"eq","data":""}]}; 

$("#lista").jqGrid({ 
    url:'/module/controller/json-action', 
    datatype: "json", 
    postData: { filters: JSON.stringify(filtro) }, 
    mtype: 'POST', 
    colNames:[, 'Col1', 'Col2','Col3','Col4'], 
    colModel:[ 
       {name:'N°',index:'ID', width:60, align:"center", hidden:true}, 
       {name:'Col1',index:'Col1', width:150, search:true, searchoptions: { sopt: ['eq'] } }, 
       {name:'Col2',index:'Col2', width:250, align:"left", search:false}, 
       {name:'Col3',index:'Col3', width:120, align:"left", search:true, searchoptions: { sopt: ['eq'] }}, 
       {name:'Col4',index:'Col4', width:60, align:"center", search:true, searchoptions: { sopt: ['eq'] }}] 
    , rowNum:10 
    , rowList:[10,20,30] 
    , pager: '#pager' 
    , sortname: 'ID' 
    , viewrecords: true 
    , sortorder: "desc" 
    , caption:"Listado de ejemplo" 
    , loadonce: true 
    , onSelectRow: function(id) { 
     $("#ID").val(id); 
     } 
    , ondblClickRow: function(id) { 
     $("#edit").submit(); 
    } 
}); 

$("#lista").jqGrid(
     'navGrid', '#pager', { edit:false, add:false, del:false }, 
     {},// settings for edit 
     {},// settings for add 
     {},// settings for delete 
     { multipleSearch:true/*activa la búsqueda avanzada*/, 
      closeAfterSearch:true, closeAfterReset:true, recreateFilter:true, 
      /*la función que define la búsqueda*/ 
      onSearch: function() {}//fin onSearch 
      , 
      //the search criteria that user selected before pressing find use below code: 
      onClose:function() { 
      }//fin onClose 

     } 
); 

});//fin document ready 

我所做的一切只是为了增加“loadonce:真”。如果我删除“loadonce:true”,网格将不再过滤。

相关问题