2015-05-14 5 views
0

Я реализовал выпадающий редактор инициализации в сетке jqx, он отлично работает в Firefox и Chrome, но в Internet Explorer у меня возникла странная проблема. Когда я перехожу на первую страницу и пытаюсь щелкнуть по любой ячейке столбца (в которой я применил раскрывающийся редактор), он показывает мне правильное раскрывающееся меню, но на второй странице, когда я пытаюсь щелкнуть по любой ячейки этой колонки, раскрывающийся список пуст. Я предполагаю, что это связано с тем, что init-editor не вызывается на второй странице в Internet Explorer.JQ Widgets IE issue

Как это исправить?

js fiddle link

var outputReport = ''; 
var uidList = []; 

$(function() {  

    var listSource = 
     { 
      datatype: "json", 
      dataFields : [ { 
       name : "First", 
       type : 'string' 
      }, { 
       name : "Last", 
       type : 'string' 
      } ], 
      id: 'id', 
      localdata: [{'id': 1, 'First': 'Abhishek', 'Last': 'Shringi'},{'id': 2, 'First': 'Abhishek', 'Last': 'Shringi'},{'id': 3, 'First': 'Abhishek', 'Last': 'Shringi'},{'id': 4, 'First': 'Abhishek', 'Last': 'Shringi'},{'id': 5, 'First': 'Abhishek', 'Last': 'Shringi'},{'id': 6, 'First': 'Abhishek', 'Last': 'Shringi'}] 
     }; 
     var listAdapter = new $.jqx.dataAdapter(listSource);   

     //Dropdown source for PW Reset 
     var dropDownListSource = 
     { 
      datatype: "json", 
      datafields: [ 
       { name: 'name' } 
      ], 
      id: 'id', 
      localdata: [{'id': 1, 'name': 'New'},{'id': 2, 'name': 'Yes'},{'id': 3, 'name': 'No'}] 
     }; 
     var dropdownListAdapter = new $.jqx.dataAdapter(dropDownListSource, { autoBind: true, async: false }); 
     var dropdownListSource = []; 
     for (var i = 0; i < dropdownListAdapter.records.length; i++) { 
      dropdownListSource[i] = dropdownListAdapter.records[i]['name']; 
     } 
     // create list user grid 
     $('#list-users-table').jqxGrid({ 
      source : listAdapter, 
      altrows:  true, 
      autoheight:  true, 
      width:   '99%', 
      columnsheight: 30, 
      editable: true, 
      editmode: 'click', 
      pagesizeOptions: ['2','4','6','8'], 
      pagesize:  2, 
      pageable:  true, 
      filterable:  true, 
      sortable:  true, 
      virtualmode: true, 
      selectionmode: 'multiplerowsextended', 
      filtermode:  'default', 
      rendergridrows: function(params) {      
       return params.data; 
      }, 
      handlekeyboardnavigation: function(e) 
      {     
       var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;      
       if (key == 39) {     
        $("#list-users-table").jqxGrid('gotonextpage'); 
       } 
       else if (key == 37) {      
        $("#list-users-table").jqxGrid('gotoprevpage'); 
       } 
       e.stopPropagation(); 
       e.event.cancelbubble = true;      
      },    
      columnsresize: true, 
      showheader:  true,     
      columns : [ { 
       text : 'PW Reset', 
       datafield : 'Reset', 
       width : 80, 
       columntype: 'dropdownlist',     
       initeditor: function (row, cellvalue, editor) {     
        editor.jqxDropDownList({ source: dropdownListSource}); 

        editor.on('select', function(event) {       
         var args = event.args; 
         if (args) { 
          var index = args.index; 
          var item = args.item;              
          var resetType = item.label; 
          var value = item.value; 
          var selection = $("#list-users-table").jqxGrid('getselectedrowindexes'); 
          if (selection 
            && selection.length > 0) { 

           for (var i = 0; i < selection.length; i++) { 
            var rowData = $('#list-users-table').jqxGrid('getrowdata', selection[i]); 


           } 
          } 

         } 

        });      
       }     
      }, { 
       text : 'First Name', 
       datafield : 'First', 
       width : 120, 
       editable : false, 
       align: 'center' 
      }, { 
       text : 'Last Name', 
       datafield : 'Last', 
       width : 120, 
       editable : false, 
       align: 'center' 
      } 
      ]   
     });  

     //function calls when apply filter 
     $('#list-users-table').on('filter', function (event) {    
      if(event.args.filters.length > 0) { 
       $("#export-user-menu-item").show(); 
      } else { 
       $("#export-user-menu-item").hide(); 
      } 
      $('#list-users-table').jqxGrid('updatebounddata', 'filter'); 
      $("#list-users-table").jqxGrid('clearselection'); 
     }); 

     //function calls when apply sorting 
     $('#list-users-table').on('sort', function (event) { 
      $('#list-users-table').jqxGrid('updatebounddata', 'sort'); 
      $("#list-users-table").jqxGrid('clearselection'); 
     });  


}); 

ответ

0

Проблема с случае select вместо этого использования close, а также createeditor связывать только один раз:

createeditor: function (row, value, editor) { 
    editor.jqxDropDownList({ source: dropdownListSource}); 

    editor.on('close', function(event) {       
    var index = editor.jqxDropDownList('getSelectedIndex'); 
    var item = editor.jqxDropDownList('getSelectedItem'); 
    var resetType = item.label; 
    var value = item.value; 
    }); 
}  
+0

Привет спасибо за ответ, но до сих пор я получаю ту же ошибку. когда я непосредственно перехожу на вторую страницу и нажимаю на раскрывающееся поле PW Reset, становится пустым, и это тоже только в IE –

+0

Ну, теперь я могу проверить его только на IE9, и все в порядке, может быть, конкретная версия? –