Есть ли способ динамически изменять источник данных столбца сетки JQwidget, а также имена столбцов - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь изменить несколько столбцов на основе выбора пользователя, динамически удаляя некоторые столбцы в массиве. Однако после повторного заполнения сетки кажется, что существующие столбцы уже есть, и поэтому я получаю сообщение об ошибке при получении данных. Я получаю сообщение об ошибке, что столбец (ExternalClientId1) не существует. Как я могу это реализовать?

 loadgrid(fromDate,toDate, responseType, xRequests)

 //Instantiate Grid
    var loadGrid = function (fromDate = null, toDate = null,responseType = null, requestType = null) {

    $.ajax({
        url: "/Home/SearchResults",
        dataType: 'json',
        beforeSend: function () {
           $("jqxgrid").html('');
       },
        error: function (json, textStatus, errorThrown) {
            alert(' Error :' + errorThrown);
        },
        data: {
            fromdate: fromDate,
            toDate: toDate,
            responseType: responseType,
            requestType: requestType

        },
        success: function (response) {
            // initailize grid

            var gridData = response;
            window.searchData = response.SearchResults;

            var gridSource =
            {
                localdata: gridData,
                datatype: 'json'
            };
            var gridDataAdapter = new $.jqx.dataAdapter(gridSource);

            var externalClients = [

                { text: 'ID', datafield: 'ID', width: 100 },
                { text: 'Request Type', datafield: 'RequestType', width: 100 },
                { text: 'First Name', datafield: 'FirstName', width: 200},
                { text: 'Last Name', datafield: 'LastName', width: 200 },
                { text: 'ExternalClientId1', datafield: 'ExternalClientId1', width: 250 },
                 { text: 'IntakeStatus', datafield: 'IntakeStatus', width: 100 },
                { text: 'RequestDate', datafield: 'RequestDate', width: 250 },
                { text: 'Message', datafield: 'Message', width: 150 }

            ];
            var litigationcol = { text: 'Litigation', datafield: 'Litigation', width: 150 };
            var sublitcol = { text: 'Litigation', datafield: 'SubLitigation', width: 150 };
            if (requestType == "xRequests") {
                externalClients.splice(4, 1);

                externalClients.splice(4, 0, litigationcol);
                externalClients.splice(5, 0, sublitcol);
            }

            $("#jqxgrid").jqxGrid(
                {

                    width: 1150,
                    source: gridDataAdapter,
                    pageable: true,
                    autoheight: true,
                    columnsresize: true,
                    pagesize: 20,
                    selectionmode: 'singlecell',
                    columns: externalClients
                });

}      
            }

1 Ответ

0 голосов
/ 08 апреля 2020

Может быть, вы можете уничтожить таблицу [$ ("# jqxgrid"). JqxGrid ('destroy'); ] и перестроить его снова с новой информацией о столбцах ... Вы можете получить информацию о столбцах с помощью ajax или что-то вроде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...