几个月前,我一直在访问这个论坛而没有注册,我真的很喜欢它。所以,提前感谢所有成员。现在我想提出我的第一个问题。
我一直在使用Jqgrid一段时间,我设法让它显示行和按钮,但现在我需要进行搜索,复杂的搜索,我认为“自动”jqgrid会将参数发送到服务器,我的意思是:
sField,searchField,sOper,searchOper,sValue,searchString,sFilter和/或过滤器
我不确定它必须发送哪些内容,我认为它与发送'page','rows'和'sord'的内容相同。但我错过了一些东西,因为,例如,我可以使用以下方式获取'page','rows'和'sord':
$limit = $this->getRequest()->getParam('rows', 10);
但是我没有得到任何结果:
$params = $_REQUEST['filters']
或
$params = $this->getRequest()->getParam('sFilter');
我正在使用PHP,Zend和json。
我没有发布任何代码,因为我的疑问是通用的,但如果需要,我会这样做。
我搜索了很多,并阅读了文档,但我只是没有看到它。感谢您的帮助,谢谢!
答案 0 :(得分: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:true”。如果我删除“loadonce:true”,网格将不再过滤。