2014-02-11 3 views
0

Я использую виджет jqxgrid, который является виджлетом сетки jquery.Выпадающее окно фильтра выходит за пределы всплывающего окна фильтра jqxgrid

Я обнаружил, что выпадающее окно условий фильтра выходит за пределы всплывающего окна фильтра, и это вызывает автоматическое закрытие всплывающего окна фильтра, если я нажму последний элемент в раскрывающемся списке условий фильтра. Таким образом, его невозможно фильтровать при использовании последнего элемента в раскрывающемся списке условий. Вы можете увидеть это в скриншоте. Из-за этого я не могу фильтровать нулевые или ненулевые условия.

Как я могу предотвратить это?

Filtering Issue

Код для jqxGrid, как показано ниже.

  $("#jqxgrid").jqxGrid({ 
      theme: 'ui-start', 
      width: 740, 
      source: dataAdapter, 
      pageable: true, 
      sortable: true, 
      filterable: true, 
      autoheight: true, 
      virtualmode: true, 
      rendergridrows: function (args) { 
       return args.data; 
      }, 
      updatefilterconditions: function (type, defaultconditions) { 
       var stringcomparisonoperators = ['EMPTY', 'NOT_EMPTY', 'CONTAINS', 
       'DOES_NOT_CONTAIN', 'STARTS_WITH', 
       'ENDS_WITH', 'EQUAL', 'NULL', 'NOT_NULL']; 
       var numericcomparisonoperators = ['EQUAL', 'NOT_EQUAL', 'LESS_THAN', 'LESS_THAN_OR_EQUAL', 'GREATER_THAN', 'GREATER_THAN_OR_EQUAL', 'NULL', 'NOT_NULL']; 
       var datecomparisonoperators = ['EQUAL', 'NOT_EQUAL', 'LESS_THAN', 'LESS_THAN_OR_EQUAL', 'GREATER_THAN', 'GREATER_THAN_OR_EQUAL', 'NULL', 'NOT_NULL']; 
       var booleancomparisonoperators = ['EQUAL', 'NOT_EQUAL']; 
       switch (type) { 
        case 'stringfilter': 
         return stringcomparisonoperators; 
        case 'numericfilter': 
         return numericcomparisonoperators; 
        case 'datefilter': 
         return datecomparisonoperators; 
        case 'booleanfilter': 
         return booleancomparisonoperators; 
       } 
      }, 

      updatefilterpanel: function (filtertypedropdown1, filtertypedropdown2, filteroperatordropdown, filterinputfield1, filterinputfield2, filterbutton, clearbutton, 
      columnfilter, filtertype, filterconditions) { 
       var index1 = 0; 
       var index2 = 0; 
       if (columnfilter != null) { 
        var filter1 = columnfilter.getfilterat(0); 
        var filter2 = columnfilter.getfilterat(1); 
        if (filter1) { 
         index1 = filterconditions.indexOf(filter1.comparisonoperator); 
         var value1 = filter1.filtervalue; 
         filterinputfield1.val(value1); 
        } 
        if (filter2) { 
         index2 = filterconditions.indexOf(filter2.comparisonoperator); 
         var value2 = filter2.filtervalue; 
         filterinputfield2.val(value2); 
        } 
       } 
       filtertypedropdown1.jqxDropDownList({ autoDropDownHeight: true, selectedIndex: index1 }); 
       filtertypedropdown2.jqxDropDownList({ autoDropDownHeight: true, selectedIndex: index2 }); 
      }, 
      columns: [ 
       { text: 'Sales Order ID', dataField: 'SalesOrderID', width: 120 }, 
       { text: 'Sales Order Number', dataField: 'SalesOrderNumber', width: 120 }, 
       { text: 'Purchase Order Number', dataField: 'PurchaseOrderNumber', width: 120 }, 
       { text: 'Customer ID', dataField: 'CustomerID', width: 120 }, 
       { text: 'Order Date', dataField: 'OrderDate', width: 130, cellsformat: 'MM-dd-yyyy' }, 
       { text: 'Due Date', dataField: 'DueDate', width: 130, cellsformat: 'MM-dd-yyyy' } 
      ] 
     }); 

ответ

0

Похоже, что при написании вашего вопроса подробно вы можете неожиданно предоставить вам решение и ответ. В моем случае это было так.

Я поставил autoDropDownHeight к истинному в моем коде, который на самом деле должен быть множество ложной.

Правильный код должен быть следующим.

filtertypedropdown1.jqxDropDownList({ autoDropDownHeight: false, selectedIndex: index1 }); 
filtertypedropdown2.jqxDropDownList({ autoDropDownHeight: false, selectedIndex: index2 }); 
Смежные вопросы