Как настроить действия со строками в jqGrid

Используя плагин jqGrid от jquery, я настроил его для сортировки, разбиения по страницам и поиска. Теперь мне нужно добавить ссылки в каждую строку для перенаправления на разные страницы, например, для редактирования на основе идентификатора этой строки (я не хочу использовать редактирование jqGrid.) Как мне создать ссылки в ячейках сетки?


person Justin    schedule 11.05.2011    source источник


Ответы (1)


Удалось разобраться, обратите внимание на событие gridComplete:

jQuery(document).ready(function () {

        jQuery("#list").jqGrid({
            url: '/admin/campus/getnearbybusinesses',
            datatype: "json",
            colNames: ['Id', 'Name', 'Location', 'Verification', ''],
            rowNum: 15,
            /*rowList: [20, 40, 60],*/
            pager: '#pager',
            sortname: "Name",
            sortorder: "asc",
            viewrecords: true,
            caption: "Businesses",
            width: 930,
            height: 470,

            colModel: [
                { name: 'Id', hidden: true, sortable: false, search: false, width: 0 },
                { name: 'Name', index: 'Name', search: true, searchoptions: { sopt: ['cn']} },
                { name: 'Location', index: 'Location', search: false },
                { name: 'VerificationCode', index: 'VerificationCode', sortable: false, search: false, width: 40 },
                { name: 'action', index: 'action', sortable: false, search: false, width: 160 }
            ],

            jsonReader: {
                root: "rows",
                page: "page",
                total: "total",
                records: "records",
                repeatitems: false,
                cell: "cell",
                id: "id",
                userdata: 'rows'
            },

            gridComplete: function () {
                var grid = jQuery("#list");
                var ids = grid.jqGrid('getDataIDs');
                for (var i = 0; i < ids.length; i++) {
                    var rowData = $("#list").getGridParam('userData')[ids[i] - 1];
                    var id = rowData.Id;
                    var viewButton = "<a href='/business/home/" + id + "/index' class='button'>View</a>&nbsp;&nbsp;";
                    var upgradeDowngradeButton = "<a href='/admin/business/" + id + "/index' class='button'>Upgrade/Downgrade</a>&nbsp;&nbsp;";
                    var deleteButton = "<a href='javascript:void(0)' onclick='doDelete(" + id + ")' class='button'>Delete</a>";
                    grid.jqGrid('setRowData', ids[i], { action: viewButton + upgradeDowngradeButton + deleteButton });
                }
            }
        });

        jQuery("#list").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false });

    });
person Justin    schedule 11.05.2011