为什么这个jqGrid工具栏不起作用?

时间:2011-06-09 19:28:54

标签: jquery jqgrid

jQuery("#grid").jqGrid({
    url:'admin/name.php',
    postData: {userid: user_id},
    datatype: 'json',
    mtype: 'POST',
    height: "auto",
    width: 'auto',
    rowNum: 20,
    rowList: [10,20,30],
    colNames:[' name','Job ',' Term','Date'],
                  colModel :[
                    {name:'name', index:'name', width:100},
                    {name:'Job', index:'Job', width:150},
                    {name:'Term', index:'Term', width:70},
                    {name:'Date', index:'Date', width:100},

                                          ],

    pager: "#p_grid",
    viewrecords: true,
    toolbar: [true, 'both'],
    caption: "grid",


});

$("#grid").jqGrid('navGrid','#p_grid',{edit:true,add:true,del:true,search:true,refresh:true}); 

jQuery("#grid").filterToolbar({ searchOnEnter: false });  

1 个答案:

答案 0 :(得分:3)

您的问题的原因可能是误解了filterToolbar方法在您使用datatype: 'json'的情况下的工作方式。该方法只需在postData中设置其他参数并启动网格刷新。搜索工具栏中的信息将发送到服务器,服务器负责数据过滤。如果你写filterToolbar不起作用,服务器代码就会忽略过滤器信息。

如果您希望客户端(jqGrid本身)完成数据过滤,分页和排序,您可以考虑使用jqGrid的loadonce:true参数。在服务器应该发回的情况下,不是第一页数据,而是整个网格数据。加载第一个数据后,jqGrid会将datatype: 'json'更改为datatype: 'local',之后jqGrid将在本地对数据进行排序,分页和过滤。