Jqgrid: навигация на основе выбранной строки - PullRequest
6 голосов
/ 11 июня 2010

Я пытался включить навигацию на основе выбранной строки. Итак, пользователь выбирает строку из jQgrid, и когда нажимает шоу (есть ли кнопка показа для сетки, я видел редактирование, добавление и т. Д.), Ему нужно перейти на новую страницу на основе URL (часть строки). ).

$(document).ready(function () {
    function getLink() {
//      var rowid = $("#customer_list").jqGrid('getGridParam', 'selrow');
        var rowid = $("#customer_list").getGridParam('selrow');
        var MyCellData = $("#customer_list").jqGrid('getCell', rowid, 'dataUrl');
        return MyCellData;
    }

    $("#customer_list").jqGrid({
        url:'mytestList',
        editurl:'jq_edit_test',
        datatype: "json",
        colNames:['Call Id','Title','dataUrl'],
        colModel:[
          {name:'callId', width:80, search:false},
          {name:'title', width:200, sortable:false},
          {name:'dataUrl',hidden:true}
        ],
        rowNum:10,
        sortname:'lastUpdated',
        sortorder: 'desc',
        pager:'#customer_list_pager',
        viewrecords: true,
        gridview: true
    }).navGrid('#customer_list_pager',
      {add:true,edit:true,del:false,search:true,refresh:true}, 
      {closeAfterEdit:true, afterSubmit:afterSubmitEvent}, // edit options
      {addCaption:'Create New something', afterSubmit:afterSubmitEvent,
       savekey:[true,13]}, // add options
      {afterSubmit:afterSubmitEvent}  // delete options
    );
    $("#customer_list").jqGrid('filterToolbar');
});

Итак, URL передается для каждой строки как dataUrl. Я пытаюсь прочитать его и установить на кнопку. При отладке через firebug rowid был 223 (в сетке было только 12 строк), а значение ячейки пусто. В настоящее время кнопка находится вне сетки, но может быть лучше, чтобы она была частью vavGrid

спасибо.

Ответы [ 2 ]

15 голосов
/ 11 июня 2010

Код, подобный следующему, может решить вашу проблему

$("#customer_list").jqGrid ('navButtonAdd', '#customer_list_pager',
    { caption: ""/*"Show"*/, buttonicon: "ui-icon-extlink", title: "Show Link",
      onClickButton: function() {
          var grid = $("#customer_list");
          var rowid = grid.jqGrid('getGridParam', 'selrow');
          window.location = grid.jqGrid('getCell', rowid, 'dataUrl');
      }
    });
4 голосов
/ 11 июня 2010

Вы можете просто сделать кнопку показа частью каждой строки в сетке и использовать пользовательский форматер , чтобы превратить ее в URL.

Исходя из примера в вики, вам, вероятно, понадобится что-то вроде

function myformatter ( cellvalue, options, rowObject )
{
    return "<a href=\"" + cellvalue + "\">Show</a>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...