Проблема с основной сеткой jqGrid - PullRequest
0 голосов
/ 25 августа 2010

У меня есть основная сетка, и я хочу отображать результаты по щелчку строки из основной сетки в подробной таблице .. Я не могу получить данные в моей подробной таблице ....

  $(document).ready(function(){
      { $("#navmenu-v li").hover( 
                    function() {
                        $(this).addClass("iehover"); }, 
                    function() { 
                        $(this).removeClass("iehover");
            } );

      jQuery("#list10").jqGrid({
                 sortable:true,
             url: '/cpsb/json/jsonpageheader.txt',
             datatype:'json',
             colNames:['Order','Load', 'Gate Time', 'Stop','Customer','Status'], 
             colModel:[  
                         {
                                name:'orderNumber',
                                index:'orderNumber',
                                width:130,
                                align:"center",
                                sorttype:"int"

                         },
                         {
                                name:'loadNumber',
                                index:'loadNumber', 
                                width:100, align:"center",
                                sorttype:"int"


                         },
                         {
                                 name:'latestTime',
                                 index:'latestTime', 
                                 width:160,
                                 align:"center"

                          }, 
                         {
                                     name:'stopSeq',
                                     index:'stopSeq',
                                     width:80, 
                                     align:"center", 
                                     sorttype:"int"

                        },
                         {
                                     name:'customerNumber',
                                     index:'customerNumber', 
                                     width:100,align:"center", 
                                     sorttype:"int"

                        },
                         {
                                     name:'orderStatus',
                                     index:'orderStatus', 
                                     width:80, align:"center"

                         } ],

           rowNum:10,
           rowList:[10,20,30],
           jsonReader : {repeatitems: false,
            root: function(obj) {
                return obj;
            },
            page: function (obj) { return 1; },
            total: function (obj) { return 1; },
            records: function (obj) { return obj.length; }
        },
           pager: '#pager10',
           sortname: 'Gate Time',
           sortorder: "desc",
           viewrecords: true,
           multiselect: true,
           caption: "Order Header",


           onSelectRow: function(ids) {
                 if(ids == null) {
                      ids=0; 
                      if(jQuery("#list10_d").jqGrid('getGridParam','records') >0 )
                           { 
                            jQuery("#list10_d").jqGrid('setGridParam',{url:"/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails"+ids,page:1});
                            jQuery("#list10_d").jqGrid('setCaption',"Order Header: "+ids).trigger('reloadGrid'); } 
                           }
                          else { 
                              jQuery("#list10_d").jqGrid('setGridParam',{url:"/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails"+ids,page:1});
                               jQuery("#list10_d").jqGrid('setCaption',"Order Details: "+ids).trigger('reloadGrid');
                                }
                         } ,
                         height:'100%'
         }); 
          jQuery("#list10").jqGrid('navGrid','#pager10',{excel:true, add:false,edit:false,del:false,searchtext:"Filter"},{},{},{},{multipleSearch:true});
         $("#list10").jqGrid('hideCol', 'cb');


         jQuery("#relCasePick").click( function(){
             var id = jQuery("#list10").jqGrid('getGridParam','selarrrow');
             alert(id);

              }); 


          jQuery("#list10_d").jqGrid({ 
              height: 100, 
              url:'/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails',
              datatype: "json",
              colNames:['Order','SKU', 'UPC', 'Item Description','Quantity Ordered','Teach in Hold?'],
              colModel:[ {name:'Order',index:'', width:55},
                         {name:'SKU',index:'sku', width:55},
                         {name:'UPC',index:'qty', width:40, align:"right"},
                         {name:'Item Description',index:'unit', width:150, align:"right"}, 
                         {name:'Quantity Ordered',index:'quantity', width:150,align:"right", sortable:false, search:false},
                         {name:'Teach in Hold?',index:'teachInId', width:150, align:"right"},  ],
              rowNum:5,
              rowList:[5,10,20],
              jsonReader : {repeatitems: false,
                    root: function(obj) {
                        return obj;
                    },
                    page: function (obj) { return 1; },
                    total: function (obj) { return 1; },
                    records: function (obj) { return obj.length; }
                },
              pager: '#pager10_d',
              sortname: 'SKU',
              viewrecords: true,
              sortorder: "asc",
              multiselect: true,
              caption:"Order Detail" 
             }).navGrid('#pager10_d',{add:false,edit:false,del:false}, {},{},{},{multipleSearch:true});
              jQuery("#ms1").click( function() {
              var s; 
              s = jQuery("#list10_d").jqGrid('getGridParam','selarrrow'); 
              alert(s); }); 
      }});

есть ли способ, которым я не буду извлекать другие данные сетки, и вместо этого только по щелчку строки из 1-й сетки я получу значения для следующей сетки


Да, следующая сетка - это детальная сетка ...что в основном делает, это выбирает соответствующие значения для номера заказа из основной сетки и отображает его подробно ....

для второй части

is there a way that i will not pull the other grid data and instead of that only on row click from 1st grid i will get the values for next grid?

Вместо того, чтобы получать все данные изсервер может я просто извлекать данные только при выборе строки из первой сетки ...

Более того, у меня есть разрешение вызова кнопки для выбора случая, и после нажатия этой кнопки я отправляю выбранные строки в базу данных ..У меня есть класс действий для этого, но как мне отправить эти выбранные строки.

jQuery("#relCasePick").click( function(){
             var id = jQuery("#list10").jqGrid('getGridParam','selarrrow');
             alert(id);

              });

Могу ли я сделать что-то вроде jQuery(("#list10").jqGrid('getGridParam','action class URL')


Могу ли я сделать что-то вродеэто для отправки строк на сервер

jQuery("#relCasePick").click( function(){
             var rows= jQuery("#list10").jqGrid('getRowData');
              var paras=new Array();
              for(var i=0;i<rows.length;i++){
                  var row=rows[i];
                  paras.push($.param(row));
              }
              $.ajax({
                  type: "POST",
                  url: "/cpsb/unprocessedOrders.do?method=releaseToCasePick",
                  data: paras.join('and'),
                  success: function(msg){
                      alert(msg);
                  }
              });

1 Ответ

0 голосов
/ 25 августа 2010

В вашем текущем коде вы задаете URL для сетки подробностей, например

"/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails"+ids

, хотите ли вы, вероятно, иметь

"/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails&someParameter="+ids

Не могли бы вы также сформулировать свой второй вопрос

есть ли способ, которым я не буду извлекать другие данные сетки, и вместо этого, только по щелчку строки из 1-й сетки, я получу значения для следующей сетки?

Что вы имеете в видупод "получить значения для следующей сетки"?Следующая сетка является детальной сеткой?Откуда вы хотите получить значения?Что касается метода getRowData (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods#grid_related_methods), вы можете получить полные данные из выбранной строки основной сетки, но из какого источника вы планируете получать данные для подробной сетки?

...