2014-09-24 260 views
1

这是JqGrid.In在这里有一个GridSearch.In问题,在这里我把InvoiceId作为搜索。但它不工作,但它显示加载面板,当我点击搜索按钮。JqGrid搜索不起作用

我的数据类型是Json.I看到有一个链接正在工作,我也试图做到这一点,但它不适用于我的方案。 LINK

<script type="text/javascript"> 
       $(function() { 
     $('#jqgrid').jqGrid({ 

      url: 'Sales/GetAllSalesOrders/', 

      datatype: 'json', 
      mtype: 'GET', 
      //columns names 
      colNames: ['InvoiceId', 'CustomerId', 'SubTotal', 'TotalDiscount', 'VAT', 'NBT', 'Amount', 'Balance'], 
      //columns model 
      colModel: [ 
         { name: 'InvoiceId', index: 'InvoiceId', align: 'left' }, 
         { name: 'CustomerId', index: 'CustomerId', align: 'left' }, 
         { name: 'SubTotal', index: 'SubTotal', align: 'left' }, 
         { name: 'FullDiscount', index: 'FullDiscount', align: 'left' }, 
         { name: 'Vat', index: 'Vat', align: 'left' }, 
         { name: 'Nbt', index: 'Nbt', align: 'left' }, 
         //{ name: 'Total', index: 'Total', align: 'left' }, 
         { name: 'NetAmount', index: 'NetAmount', align: 'left' }, 
         { name: 'Balance', index: 'Balance', align: 'left' } 
      ], 

      pager: $('#jqgrid'), 
      rowNum: 10, 
      sortname: 'InvoiceId', 
      sortorder: 'asc', 
      viewrecords: true, 
      width: 'auto', 
      height: 'auto', 
      rowNum: 50, 
      rowTotal: 200, 
      rowList: [20, 30, 50, 100], 
      rownumbers: false, 
      rownumWidth: 40, 
      subGrid: true, 

      //subrid model 
      subGridModel: [{ 
       //subgrid columns names 
       // name: ['InvoiceItemId', 'Quantity', 'Rate', 'DiscountAmount', 'Amount'], 
       name: ['InvoiceItemId', 'Quantity'], 
       width: [100, 100], 
       align: ['left', 'left'], 

       //data: { id: id } 
      }], 
      //url from which subgrid data should be requested 
      subGridUrl: '/Sales/GetSalesItemsByInvoiceId/' 

     }); 


    }); 

    $("#mySearch").click(function() { 
     debugger; 
     var grid = $("#jqgrid"); 
     var text = $("#searchText").val(); 
     var postdata = grid.jqGrid('getGridParam', 'postData'); 

     $.extend(postdata, 
         { 
          filters: '', 
          searchField: 'InvoiceId', 
          searchOper: 'eq', 
          searchString: 'text', 
         }); 
     grid.jqGrid('setGridParam', { search: true, postData: postdata }); 
     grid.trigger("reloadGrid", [{ page: 1 }]); 

    }); 

</script> 

回答

1

首先,你应该在你的代码替换searchString: 'text',searchString: text。我希望你在服务器端实现了搜索(到url: 'Sales/GetAllSalesOrders/'),因为searchField,searchOpersearchString只会发送到服务器而你的服务器代码被执行搜索。如果您需要在客户端使用搜索,则应使用loadonce: true

其次,我会建议你通过删除不需要的index性能和align: 'left'gridview: true选项添加到网格,更换pager: $('#jqgrid')pager: '#jqgrid',简化colModel

+0

变更后工作。谢谢 – TechGuy 2014-09-24 10:29:18