Как я могу объединить функцию dt-render с yadcf-filter_match_mode: 'exact' и разделителем?

Я уже давно пытаюсь и ищу, но не могу найти решение.

Значение поля отделяется разделителем. Чтобы это отображалось красиво, я заменяю его запятой. Однако поведение фильтра не такое, как ожидалось, и у меня сложилось впечатление, что параметры столбца 5 также применяются к столбцу 3.

https://jsbin.com/valeces/4/edit?html,output

Если я удалю параметры для столбца 5, результат поиска в столбце 3 будет другим:

```https://jsbin.com/dagulix/2/edit?html,output```

Если для первого фильтра выбрано «XXX», будет найден только один результат, хотя значение существует дважды. Со вторым jsbin результат другой, хотя параметры для столбца 3 те же.

filter_match_mode: Мне не удалось заставить exact работать, поэтому для начала я использовал contains.

Предложение на следующий раз: вместо того, чтобы предоставлять демо-версию по внешней ссылке (например, jsbin), вы можете использовать фрагмент стека, чтобы гарантировать, что вашу демо-версию можно будет запустить прямо из вашего вопроса.

andrewJames 06.06.2024 23:32

Спасибо за совет, так и сделаю в будущем.

berndy2001 07.06.2024 13:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените функцию DataTables render на VERTRAGSART следующим образом:

{
    "data": "VERTRAGSART",
    render: function(data, type, row) {
      return data.split("|").join(", ");
   }
},

...к этому:

{
    "data": "VERTRAGSART",
    render: function(data, type, row) {
      if (type === 'display') {
        return data.split("|").join(", ");
      } else {
        return data;
      }                        
   }
},

Почему?

Проблема в том, что вы смешиваете два разных формата:

  1. Раскрывающийся список основан на том, как вы обрабатываете необработанные данные JSON с помощью |.

  2. Поиск выполняется по измененным данным в вашей таблице данных, которая использует , при выполнении фильтра.

Эти два формата не совпадают.

Решение учитывает это, позволяя DataTables хранить различные форматы данных для ваших VERTRAGSART данных:

а) формат типа «отображение», где пользователь видит более дружелюбный , вместо оригинального |.

б) исходный формат (с использованием |), используемый всеми остальными типами, используемыми DataTables, а именно типом «фильтр» и типом «сортировка».

Пользователю отображается формат типа «дисплей».

Но DataTables хранит другой формат для своего типа «фильтра» и типа «сортировки». А затем, когда пользователь выполняет фильтр (или сортировку), DataTables использует другую отформатированную строку — ту, в которой есть |.

И в вашем случае эта строка теперь будет соответствовать исходным данным JSON, которые вы использовали при создании раскрывающихся значений с помощью yadcf.

Если вы явно не обрабатываете эти разные «типы» в функции рендеринга, DataTables использует предоставленные данные для всех типов (display, filter и sort).


Подробнее об этом можно прочитать здесь: Ортогональные данные. Здесь также описаны дополнительные способы обработки этих «ортогональных» типов данных.


Если вы предпочитаете, вы можете сделать это:

{
    "data": "VERTRAGSART",
    render: function(data, type, row) {
      if (type === 'filter') {
        return data;
      } else {
        return data.split("|").join(", ");
      }                        
   }
},

Теперь только тип «фильтр» будет использовать строку, отформатированную с помощью |, а другие типы («отображение» и «сортировка») будут использовать строку, отформатированную с помощью , .

Вы также можете повторить это изменение кода для любых других столбцов, также содержащих разделители |.


Запускаемая демонстрация фрагмента стека с использованием исходного кода:

$(document).ready(function() {



  var data = {
    "actualRows": 46,
    "filteredRows": 46,
    "myRows": [{
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH",
      "VERTRAGSART": "Dienstleistungsvertrag"
    }, {
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Vertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "XXX"
    }, {
      "BETREFF": "thomas mag pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "XXX|Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag,1|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "thomas:: mag: pizza",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-05-25T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "Pizza Party",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2099-12-31T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "Pizza Party",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2099-12-31T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "Pizza Party",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2099-12-31T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "Pizza Party thomas mag pizza thomas mag pizza thom thomas mag pizza thomas mag pizza thom",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-06-08T00:00:00",
      "STATUSVERTRAG": null,
      "VERTRAGSPARTNER": "Andreas Kreuz GmbH|xxy",
      "VERTRAGSART": "Dienstleistungsvertrag|Rahmenvertrag"
    }, {
      "BETREFF": "test statustest statustest statustest statustest statustest statustest statustest statustest statust",
      "VERANTWORTLICHESTELLE": "Unternehmesentwicklung",
      "VERTRAGSENDE": "2024-06-06T00:00:00",
      "STATUSVERTRAG": "g\u00fcltig",
      "VERTRAGSPARTNER": "xxy",
      "VERTRAGSART": "Dienstleistungsvertrag"
    }],
    "sourceID": 381643197,
    "success": true,
    "totalRows": 46,
    "totalSourceRows": 46
  }


  var oTable = $('#myTable').DataTable({
    "data": data.myRows,
    "processing": true,
    "columns": [{
      "data": "BETREFF"
    }, {
      "data": "VERANTWORTLICHESTELLE"
    }, {
      "data": "VERTRAGSPARTNER",
      "render": function(data, type, row) {
        return data.split("|").join(", ");
      }
    }, {
      "data": "VERTRAGSART",
      render: function(data, type, row) {
        if (type === 'display') {
          return data.split("|").join(", ");
        } else {
          return data;
        }

      }
    }, {
      "data": "VERTRAGSENDE",
      "render": DataTable.render.datetime('DD.MM.YYYY')
    }, {
      "data": "STATUSVERTRAG"
    }],
  });

  yadcf.init(oTable, [{
    column_number: 3,
    filter_type: "select",
    text_data_delimiter: "|",
    filter_container_id: "s_vertragsart",
    filter_reset_button_text: false,
    style_class: "form-control",
    filter_match_mode: "contains"
  }, {
    column_number: 5,
    filter_type: "text",
    filter_container_id: "s_status",
    filter_reset_button_text: false,
    filter_match_mode: "exact",
    style_class: "form-control"
  }]);
});
<!DOCTYPE html>
<html lang = "en">

<head>
  <meta charset = "utf-8">
  <meta name = "viewport" content = "width=device-width, initial-scale=1">
  <title>DT</title>
  <link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
  <!--<link rel = "stylesheet" href = "https://cdn.datatables.net/2.0.8/css/dataTables.dataTables.min.css">-->
  <link rel = "stylesheet" href = "https://cdn.datatables.net/1.13.11/css/dataTables.dataTables.css">

  <script type = "text/javascript" src = "https://code.jquery.com/jquery-3.7.1.js"></script>
  <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
  <script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/moment.min.js"></script>
  <!--
<script type = "text/javascript" src = "https://cdn.datatables.net/2.0.8/js/dataTables.min.js"></script>
<script type = "text/javascript" src = "https://raw.githack.com/vedmack/yadcf/master/2.0/jquery.dataTables.yadcf-2.0.js"></script>
  -->
  <script type = "text/javascript" src = "https://cdn.datatables.net/1.13.11/js/jquery.dataTables.js"></script>
  <script type = "text/javascript" src = "https://raw.githack.com/vedmack/yadcf/master/dist/jquery.dataTables.yadcf.js"></script>

</head>

<body>
  <div class = "container-fluid mt-3">
    <div class = "row mb-2">
      <div class = "col-xl-3 col-lg-4 col-md-6 col-sm-6 fw-bold">Vertragsart
        <div id = "s_vertragsart"></div>
      </div>
      <div class = "col-xl-3 col-lg-4 col-md-6 col-sm-6 fw-bold">Status
        <div id = "s_status"></div>
      </div>
    </div>
    <table class = "table table-hover align-middle" id = "myTable" width = "100%">
      <thead>
        <tr>
          <th scope = "col">Betreff</th>
          <th scope = "col">Verantwortliche Stelle</th>
          <th scope = "col">Vertragspartner</th>
          <th scope = "col">Vertragsart</th>
          <th scope = "col">Gültig bis</th>
          <th scope = "col">Status</th>
        </tr>
      </thead>
    </table>
  </div>

</body>

</html>

Поиск XXX в Vertragsart теперь находит 2 записи.

Здравствуйте, ЭндрюДжеймс, спасибо за ваш ответ и особенно за такое подробное объяснение. Я не знал, что меню выбора yadcf имеет доступ к другим значениям, кроме фильтрации. Это работает сейчас.

berndy2001 07.06.2024 13:27

Но у меня есть вторая, очень странная проблема. Если я изменю filter_type в столбце 3 с select на multi_select, при фильтрации по XXX снова будет найдена только одна запись. Я так понимаю, результат должен остаться тот же, только меню выбора выглядит по-другому. live.datatables.net/forunija/1/edit Но если я установлю filter_match_mode для столбца 5 на contains, результат для фильтра в столбце 3 совпадет. Я не совсем это понимаю. live.datatables.net/tajebaju/1/edit

berndy2001 07.06.2024 13:28

@ berndy2001 - Если у вас возникла новая (или отдельная дополнительная) проблема, в идеале вам следует создать для нее новый вопрос. Это поможет всем членам сообщества увидеть этот вопрос, и у вас будет больше шансов получить лучший ответ. (Кроме того, проблему легче описать более четко в полном вопросе, а не в комментарии. Вы также можете предоставить в вопросе работоспособный фрагмент стека.)

andrewJames 07.06.2024 17:23

@ berndy2001 - С учетом вышесказанного, что произойдет, если вы удалите опцию filter_match_mode из обоих определений столбцов yadcf - столбца 3 и столбца 5?

andrewJames 07.06.2024 17:24

(Кстати, я тоже не могу объяснить такое поведение — вам следует задать новый вопрос!)

andrewJames 07.06.2024 17:31

Тем временем я связался с автором, это была ошибка в yadcf. Это было исправлено, и теперь оно работает как положено.

berndy2001 10.06.2024 12:04

Другие вопросы по теме