Чтобы снять все флажки столбца в jqxGrid

У меня есть небольшая таблица, построенная с использованием jqxGrid. 1-й столбец содержит флажки, как показано ниже:

Ожидаемый результат:

  1. При нажатии кнопки «Снять все» необходимо, чтобы все эти флажки были сняты следующим образом:

  1. При нажатии кнопки удаления необходимо получить данные выбранных строк флажком.

HTML:

<div id='travelGrid'></div>
<br>
<button id = "unselect">Unselect All</button>

Удалять

JS:

$( document ).ready(function() {
var travelGridSource = {
      localdata: [],
      datafields: [
           { name: 'isSelected', type: 'bool' },
           { name: 'Zipcode', type: 'number' },
           { name: 'TravelFee', type: 'number' }
      ],
      datatype: "array"
}

 
var travelFees = [
                { "isSelected": "true", "Zipcode": "001", "TravelFee": "25"},
                { "isSelected": "true", "Zipcode": "002", "TravelFee": "75"},
                { "isSelected": "false", "Zipcode": "003", "TravelFee": "75"},
                { "isSelected": "true", "Zipcode": "004", "TravelFee": "75" },
                { "isSelected": "false", "Zipcode": "004", "TravelFee": "75" }
 ];
 
 travelGridSource.localdata = travelFees;
 
                 $("#travelGrid").jqxGrid({
                    width: '100%',
                    height: '20%',
                    rowsheight: 29,
                    columnsheight: 29,
                    source: new $.jqx.dataAdapter(travelGridSource),
                    sortable: true,
                    columnsresize: true,
                    columnsmenu: false,
                    showsortcolumnbackground: false,
                    enablehover: false,
                    selectionmode: 'none',
                    scrollmode: 'logical',
                    theme: 'light',
                    rowdetails: true,
                    editable: true,
                    showrowdetailscolumn: false,
                    columns: [
                        { text: '', datafield: 'isSelected', width: '7%', align: 'center', columntype: 'checkbox', cellsalign: 'center', 'editable': true  },
                        { text: 'Zip', datafield: 'Zipcode', width: '15%', align: 'center', cellsalign: 'center', 'editable': false  },
                        { text: 'Travel Fee', datafield: 'TravelFee', width: '20%', align: 'center', cellsalign: 'center', cellsformat: 'c2'}
                    ]
                });
 });
 
 
 $('#unselect').click(function(){
    // Do something here
 });

 $('#remove').click(function(){
    // Do something here
 });

Перерыл много и документацию тоже, но бесполезно. Не удалось добавить ссылку на скрипку, поэтому вставил URL-адрес скрипки в виде кода:

 https://jsfiddle.net/75zrfko0/25/
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
439
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Сначала вы должны принять событие клика отмены выбора в рамках документа jQuery из-за вашей локальной области набора данных.

$(document).ready(function(){
   //unselect onclick event listener
})

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

    $('#unselect').click(function(){
    // Do something here
     travelFees = travelFees.map((obj) => {
        obj.isSelected = "false";
            return {...obj};
     })
     travelGridSource.localdata = travelFees;
     $("#travelGrid").jqxGrid({source: new $.jqx.dataAdapter(travelGridSource)});
 });

Я не полностью изучил API для JQXWiget, но может быть способ обновить локальный набор данных, пожалуйста, перейдите по ссылке ниже,

  1. https://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/index.htm#demos/jqxgrid/checkboxcolumn.htm

Можете ли вы дать решение для 2-го вопроса?

Shankar 24.12.2020 08:40

@Shankar, вы можете использовать метод фильтра, чтобы выбрать выбранный флажок при удалении события из вашего локального набора данных. Просто передайте фильтр obj.isSelected === "true" в методе array.filter.

krishank Tripathi 24.12.2020 08:53

Это отлично работает при загрузке сетки, но после загрузки сетки, если я выбираю другие флажки, которые не будут обновляться (например, для путешествияGridSource), верно?

Shankar 24.12.2020 09:00

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

krishank Tripathi 24.12.2020 09:02

Пожалуйста, помогите мне: как я могу вызвать функцию/метод при щелчке флажка.

Shankar 24.12.2020 09:06

@Shankar вот пример в js fiddle для выбора ячейки, вы можете обработать событие щелчка флажка здесь jsfiddle.net/jqwidgets/HB3Cb если вам нужна дополнительная помощь, пожалуйста, откройте обсуждение. Я отвечу на него, когда освобожусь.

krishank Tripathi 24.12.2020 09:12

Давайте продолжим обсуждение в чате.

Shankar 24.12.2020 09:14

Я знаю, как вызвать функцию при щелчке по ячейке, но я хочу вызвать функцию при щелчке флажка, который присутствует внутри ячейки.

Shankar 24.12.2020 09:16

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