2012-05-29 30 views
0

有沒有辦法將過濾器從敏感的情況下更改爲不敏感?SlickGrid-需要不敏感的情況下過濾器

謝謝。

+0

猜你所談論的數據視圖過濾器的過濾器功能的實現是完全取決於你。請注意SlickGrid示例中使用的過濾器函數 - 該函數被設置爲使用dataView.setFilter(your_function_here)的過濾器。 因此,可以根據需要實現過濾器功能並將其設置爲dataView。 – ganeshk

+0

再次感謝你的男人!你是最好的! :) 嘿,這是我給你的一個提示 - 將你的評論轉化爲答案,當我將你的答案批准爲正確答案時,你會得到積分。比刪除這個評論:))) – neoswf

+0

&關於我的問題,我怎麼能不敏感呢?我會小寫dataView字符串,並且不會有任何問題? #thinking .... – neoswf

回答

1

猜測您正在討論DataView過濾器,過濾器功能的實現完全取決於您。請注意SlickGrid示例中使用的過濾器函數 - 該函數被設置爲使用dataView.setFilter(your_function_here)的過濾器。因此,請根據需要實施過濾器功能並將其設置爲dataView

+0

謝謝! – neoswf

+1

我已經在Git上進行了此修改。 我認爲它需要是默認行爲,用戶想要使用區分大小寫的過濾器進行搜索沒有任何意義。 https://github.com/mleibman/SlickGrid/pull/362 – neoswf

2

以下是使用DataView過濾器的工作示例的相關部分。請注意,searchString變量在第一次定義時會轉換爲小寫,然後在myFilter函數中將其與小寫字符串進行比較。

function myFilter(item, args) { 
    if (args.searchString != "" && item["FirstName"].toLowerCase().indexOf(args.searchString) == -1 && item["LastName"].toLowerCase().indexOf(args.searchString) == -1) { 
     return false; 
    } 
    return true; 
} 

.... 

$("#txtSearch").keyup(function (e) { 
    Slick.GlobalEditorLock.cancelCurrentEdit(); 
    // clear on Esc 
    if (e.which == 27) { 
     this.value = ""; 
    } 
    searchString = this.value.toLowerCase(); 
    updateFilter(); 
}); 

function updateFilter() { 
    dataView.setFilterArgs({ 
     searchString: searchString 
    }); 
    dataView.refresh(); 
} 

// initialize the model after all the events have been hooked up 
dataView.beginUpdate(); 
dataView.setItems(data); 
dataView.setFilterArgs({ 
    searchString: searchString 
}); 
dataView.setFilter(myFilter); 
dataView.endUpdate(); 
0
function filter(item) { 
    // String Should Match Each Other 
    /* for (var columnId in columnFilters) { 
     if (columnId !== undefined && columnFilters[columnId] !== "") { 
     var c = grid.getColumns()[grid.getColumnIndex(columnId)]; 
     if (item[c.field] != columnFilters[columnId]) { 
      return false; 
     } 
     } 
    } */ 

    for (var columnId in columnFilters) { 
     if (columnId !== undefined && columnFilters[columnId] !== "") { 
      var c = grid.getColumns()[grid.getColumnIndex(columnId)]; 
// This Case Sensitive 
//if (!(item[c.field] && (""+item[c.field]).indexOf(columnFilters[columnId]) !== -1)) { 
      if (!(item[c.field] && (""+item[c.field].toLowerCase()).indexOf(columnFilters[columnId].toLowerCase()) !== -1)) { 
// Case in-Sensitive 
       return false; 
      } 
     } 
    } 
    return true; 
    } 
相關問題