Как передать источник данных JqGrid (с примененными фильтрами) в контроллер MVC - PullRequest
0 голосов
/ 28 января 2012

Я определил следующую кнопку в jqgrid.Я просмотрел много сообщений об этом, но все еще не могу понять, как отправить источник данных на контроллер (не фильтры).

Мне нужно как-то получить источник данных в виде коллекции в контроллере

$("#btnExportCsv").click(function () {
            $.blockUI({ css: {
                border: 'none',
                padding: '15px',
                backgroundColor: '#000',
                '-webkit-border-radius': '10px',
                '-moz-border-radius': '10px',
                color: '#fff'
            }, message: '<h1>Exporting to CSV</h1><p><img src="/cms/themes/cm-blue/img/busy.gif" /></p>'
            });

            generating = true;

            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: exportCsvUrl,
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $.jGrowl(XMLHttpRequest.responseText, { header: 'Error exporting csv' });
                    generating = false;
                },
                complete: function () {
                    $.unblockUI();
                },
                success: function () {
                    growl("Export completed successfully", "Export to Csv");
                }
            });

        });

jQGrid параметры:

$("#myGrid").jqGrid({
        colNames: [
    .
    .
    .  
        ],
        colModel: [...]
    mtype: 'POST',
        datatype: 'json',
        pager: '#crPager',
        page: defaultGridParams.Page,
        sortname: defaultGridParams.SortName,
        sortorder: defaultGridParams.SortOrder,
        rowNum: 10,
        rowList: [10, 20, 50, 100],
        url: Controllers/control,
        height: 'auto',
        loadui: 'block',
        width: 1200,
        caption: sGridCaption,
        hidegrid: false,
        viewrecords: true,
        ShrinkToFit: false,

1 Ответ

1 голос
/ 06 февраля 2012

Полагаю, вам следует рассмотреть проблему с другой стороны. Сетка получила данные откуда-то, и я могу предположить, что они пришли из контроллера. Если вам нужны эти данные на стороне сервера, почему бы вам не получить их тем же способом, который вы использовали для заполнения сетки?

Единственный способ увидеть, что это не работает, - это если данные передаются на стороне клиента в сетку, и у вас нет возможности получить точно такие же данные на стороне сервера.

В любом случае, если вы действительно хотите получить данные с дрида, просто позвоните:

$("#mygrid").jqGrid('getGridParam','data');

Это возвращает json, так что не ожидайте ничего большего. Тип и качество этой структуры json зависит от того, как настроена ваша сетка.

...