jqGrid主网格问题

时间:2010-08-25 14:49:59

标签: jqgrid master details

我有一个主网格,想要在详细网格中从主网格点击行显示结果。 我无法获取详细网格上的数据....

  $(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); }); 
      }});

有没有一种方法我不会拉其他网格数据,而只是在第一个网格上点击行时我将得到下一个网格的值


是的,下一个网格是详细网格...基本上做的是从主网格中获取订单号的相应值并详细显示....

第二部分

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 :(得分:0)

在您当前的代码中,您为详细网格设置了网址,如

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

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

你能否重新提出你的第二个问题

  

有没有一种方法我不会拉   其他网格数据而不是   只在第一个网格上点击行i   将得到下一个网格的值?

“获取下一个网格的值”是什么意思?下一个网格是细节网格吗?从哪里获得价值?关于getRowData方法(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods#grid_related_methods),您可以从主网格的选定行获取完整数据,但是您计划从哪个来源获取详细网格的数据?