2013-05-21 2 views
0

ВОПРОС: Почему раскрывающийся список не отображается внутри ячейки ниже (например, столбец «значение2»). Ячейка пуста. (другие ячейки правильно отображают правильные значения)Почему настраиваемый раскрывающийся список не отображается в ячейке jqgrid?

Для моего «неподготовленного» глаза кажется, что я использую правильную технику, как показано в демонстрации jqgrid.
- Но, к сожалению, в колонке не отображается ниспадающее окно. (т. Е. См. В столбце «значение2», в моей конфигурации jqgrid, ниже).

Какая часть конфигурации таблицы jqgrid предотвращает появление виджета выпадающего списка в ячейке?

Примечание: Я моделировал определение строки после этого в таблице «Типы ввода» демки .... т.е.,

 {name:'ship',index:'ship', width:90, editable: true,edittype:"select",editoptions:{value:"FE:FedEx;IN:InTime;TN:TNT;AR:ARAMEX"}}, 

Спасибо за любую помощь !!

сек


UPDATE:

Вот как я обработки флажок (ниже). Я надеялся, что для обработки выпадающего меню так же ... (фрагмент следует)

$("#xyzgrid").jqGrid({ 
    . 
    . 
    . 
    colModel: [ 
    { name: 'valw', 
     label: 'valw', 
     index: 'valw', 
     width: 50, 
     formatter: 'checkbox', 
     editable:true, 
     edittype:"checkbox", 
     editoptions: {value: 'true:false'}, 
     formatoptions: {disabled:false}}, 
    ], 
    . 
    . 
    .  
    }); 

    $("#xyzgrid > tbody > tr > td > input[type=checkbox]") 
    { 
     $(this).change(function(e){ 
      var t = $(e.target);      
      var row = t.closest("tbody").children().index(t.closest("tr"));  //...row index... 
      var rowids = $('#xyzgrid').jqGrid('getDataIDs');     //a zero-based array containing rowids of visible rows... 
      var rowid = rowids[row-1]; 
      var rowdata = $("#xyzgrid").getRowData(rowid); 
      $("#xyzgrid").jqGrid('setRowData', rowid, rowdata); 
     }); 
    }; 

    $("#submit").click(function() 
    { 
     var gridData1 = $("#xyzgrid").jqGrid('getGridParam', 'data'); 
     var gridData1String = JSON.stringify(gridData1); 

     $.ajax({ 
      type: "POST", 
      url: suburl1,        
      data: "gridData1String=" + gridData1String, 
      dataType: "text", 
      async: true, 
      success: function() { 
       alert("Submitted"); 
      }, 
      error: function(xhr, ajaxOptions, thrownError) { 
       alert("xhr status=" + xhr.status); 
       alert("thrownError=" + thrownError); 
      } 
     });       
    }); 

Вот моя конфигурация JQGrid:

  var geturl1 = 'data/getGridData1'; 

      $("#abcgrid").jqGrid({   
       url: geturl1, 
       mtype: 'POST',      
       datatype: "json", 
       jsonReader: { 
        root: "data", 
        page: "pageNo", 
        total: "pages", 
        records: "rows",       
        repeatitems: false, 
        cell: "", 
        id: "value0" 
       },      
       colNames: ['value0', 'value1', 'value2'], 
       colModel: [ 
        {name: 'value0', index: 'value0', width: 100}, 
        {name: 'value1', index: 'value1', width: 100}, 
        { 
         name: 'value2',  
         index: 'value2',  
         width: 100,  
         editable: true, 
         edittype:"select", 
         editoptions: {value:"AAA:AAA;BBB:BBB;CCC:CCC"} 
        } 
       ], 
       rowNum:5, 
       rowList:[10,20,30], 
       pager: '#pager', 
       sortname: 'value1', 
       viewrecords: true, 
       sortorder: "desc", 
       caption:"abctest grid...", 
       rownumbers: true, 
       loadonce: true     
      }); 

UPDATE # 2:

Вот наиболее недавнее «работающее» исполнение моего jqgrid. Единственная проблема, которая возникает, когда пользователь нажимает кнопку «отправить». По-видимому, последнее раскрывающееся редактирование, сделанное пользователем, оставляет строку в режиме редактирования. Поэтому это значение не включается в сообщение на сервер ...

Ниже приведена «рабочая "код (спасибо AJ и Олег) ...

<?xml version='1.0' encoding='UTF-8' ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:c="http://java.sun.com/jsp/jstl/core"> 

     <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
      <title>abctest</title> 


      <link rel="stylesheet" type="text/css" media="screen" href="css/redmond/jquery-ui-1.10.2.custom.css" /> 
      <link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" /> 

      <script src="js/jquery-1.9.1.js" type="text/javascript"></script>  
      <script src="js/jquery-ui-1.10.2.custom.js" type="text/javascript"></script> 
      <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 
      <script src="js/grid.locale-en.js" type="text/javascript"></script> 
      <script src="js/jquery.json-2.4.js" type="text/javascript"></script> 
      <script src="js/jquery.validate.js" type="text/javascript"></script>   

      <script type="text/javascript"> 
       /* <![CDATA[ */ 
       $(document).ready(function() { 

        var grid = $("#abcgrid").jqGrid({ 
         url: 'data/getGridData1', 
         mtype: 'POST', 
         datatype: "json", 
         cellsubmit: 'clientArray', 
         editurl: 'clientArray', 
         cellEdit: true, 
         jsonReader: { 
          root: "data", 
          page: "pageNo", 
          total: "pages", 
          records: "rows", 
          repeatitems: false, 
          cell: "", 
          id: "value0" 
         }, 
         colNames: ['value0', 'value1', 'value2'], 
         colModel: [ 
          { 
           name: 'value0', 
           index: 'value0', 
           width: 100 
          }, 
          { 
           name: 'value1', 
           index: 'value1', 
           width: 100 
          }, 
          { 
           name: 'value2', 
           index: 'value2', 
           width: 100, 
           stype: 'select', 
           formatter: 'select', 
           editable: true, 
           edittype: "select", 
           editoptions: {value: "AAA:AAA;BBB:BBB;CCC:CCC"} 
          } 
         ], 
         rowNum: 5, 
         rowList: [10, 20, 30], 
         pager: '#pager', 
         sortname: 'value1', 
         viewrecords: true, 
         sortorder: "desc", 
         caption: "abctest grid...", 
         rownumbers: true, 
         loadonce: true 
        }); 

        $("#submit").click(function() 
        { 
         var gridData1 = $("#abcgrid").jqGrid('getGridParam', 'data'); 
         var gridData1String = JSON.stringify(gridData1); 

         alert("gridData1String=" + gridData1String); 

         $.ajax({ 
          type: "POST", 
          url: 'data/postGridData1', 
          data: "gridData1String=" + gridData1String, 
          dataType: "text", 
          async: true, 
          success: function() { 
           reloadgrid($("#abcgrid")); 
           alert("Submitted"); 
          }, 
          error: function(xhr, ajaxOptions, thrownError) { 
           alert("xhr status=" + xhr.status); 
           alert("thrownError=" + thrownError); 
          } 
         }); 
        }); 
       }); 

       function reloadgrid(grid) 
       { 
        grid.jqGrid('setGridParam', {loadonce: false, datatype: 'json'}).trigger('reloadGrid', [{page: 1}]); 
        grid.jqGrid('setGridParam', {loadonce: true}); 
        return false; 
       } 

       /* ]]> */ 

      </script> 

     </head> 
     <body> 
      <form id="form1"> 
       <div> 
        <div>      
         <input type="submit" id="submit" value="Submit Grid Edits" /> 
        </div> 
        <div> 
         <table id="abcgrid"></table> 
         <div id="pager" ></div> 
        </div> 
       </div> 
      </form> 
     </body> 
    </html> 
+0

Какой режим редактирования вы используете? Код, который вы разместили, не содержит редактирования сетки. Вы сконфигурировали это * во время редактирования * ячейки из столбца «значение1» должны отображаться как «