Как привязать данные к jqGrid при нажатии кнопки MVC - PullRequest
0 голосов
/ 04 сентября 2018

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

Я искал это и это решение, но у них 2 вызова одновременно, один вызывает столбец с данными, другой - только данные.

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

 $(document).ready(function () {
     //Load Empty jqgrid dynamically using datatable row column...
       $(gridData).jqGrid({           
        url: "../Generic/GetRowColumns",
        colNames: colNames, // this would bind dynamically
        colModel: colModel  // this would bind dynamically         

    });

 $("#btnSubmit").click(function () {
        var data = $("#dataForm").serialize();
        //Bind jqGrid by datatable on ajax call
        $(gridData).jqGrid({           
        url: "../Generic/GetRowColumns",
        data: data,
        colNames: colNames, // this would bind dynamically
        colModel: colModel  // this would bind dynamically         

       });
     });
  });

Таким образом, при первом вызове он должен связывать пустую сетку с возвратами столбцов из таблицы данных, а другой вызов (нажатие кнопки) в той же сетке, сетка будет связываться с данными.

Нужна помощь. Заранее спасибо.

1 Ответ

0 голосов
/ 05 сентября 2018

Насколько я понимаю, необходимо сначала выполнить ajax-вызов для получения массивов colNames и colModel, построить сетку с типом данных local, а затем щелкнуть по кнопке, чтобы получить нужные данные, поместить их с помощью setGridParam и перезагрузите его, чтобы вступить в силу:

$(document).ready(function () {
    ajax({
        url :  "../Generic/GetRowColumns",
        success : function(data,....) {
            var colNames =  response_from_ajax
            var colModel = response_from_ajax
            //Load Empty jqgrid dynamically using datatable row column...
            $(gridData).jqGrid({           
                colNames: colNames, // this would bind dynamically
                colModel: colModel,  // this would bind dynamically         
                datatype : "local"
            });
        }
     });

    $("#btnSubmit").click(function () {
        var data = $("#dataForm").serialize();
        //Bind jqGrid by datatable on ajax call
        $(gridData).jqGrid('setGridParam', { data : data}).trigger('reloadGrid');                             
    });
});
...