浏览代码

Fix/5813 (#5817)

* Fixed an bug with an empty search

* Recreate the filter controls if new data was loaded using the load
function

* Don't recreate the controls if the filter extension is not in use
Dustin Utecht 4 年之前
父节点
当前提交
968ceebad9

+ 1 - 1
src/bootstrap-table.js

@@ -947,7 +947,7 @@ class BootstrapTable {
       }
 
       const rawSearchText = this.searchText && (this.fromHtml ? Utils.escapeHTML(this.searchText) : this.searchText)
-      let searchText = rawSearchText.toLowerCase()
+      let searchText = rawSearchText ? rawSearchText.toLowerCase() : ''
       const f = Utils.isEmptyObject(this.filterColumns) ? null : this.filterColumns
 
       if (this.options.searchAccentNeutralise) {

+ 10 - 0
src/extensions/filter-control/bootstrap-table-filter-control.js

@@ -154,6 +154,16 @@ $.BootstrapTable = class extends $.BootstrapTable {
     super.init()
   }
 
+  load (data) {
+    super.load(data)
+
+    if (!this.options.filterControl) {
+      return
+    }
+
+    UtilsFilterControl.createControls(this, UtilsFilterControl.getControlContainer(this))
+  }
+
   initHeader () {
     super.initHeader()
 

+ 2 - 0
src/extensions/filter-control/utils.js

@@ -353,6 +353,8 @@ export function createControls (that, header) {
     $.each(header.find('th'), (i, th) => {
       const $th = $(th)
 
+      $th.find('.filter-control').remove()
+
       if ($th.data('field') === column.field) {
         $th.find('.fht-cell').append(html.join(''))
         return false