jqGrid ShowLink Formatter - Параметр пользовательского идентификатора - PullRequest
2 голосов
/ 17 февраля 2011

Я просто что-то упускаю здесь?Не вдаваясь в пользовательское форматирование, я просто хотел бы использовать мои значения идентификатора для параметра идентификатора в форматере showlink.Вот пример моей подсетки:

subGridRowExpanded: function (subgrid_id, row_id) {
    var subgrid_table_id = subgrid_id + '_t';
    $('#' + subgrid_id).html('<table id="' + subgrid_table_id + '" class="scroll" />');
    $('#' + subgrid_table_id).jqGrid({
    datatype: 'local',
    colNames: ['Order Number', 'Request Type', 'Owner', 'Order Status', 'Status Date'],
    colModel: [{
        name: 'orderid',
        index: 'orderid',
        width: 150,
        key: true,
        formatter: 'showlink',
        formatoptions: { baseLinkUrl: 'AOFOrderFacilities.aspx', idName: 'orderid' }
    }, {
        name: 'type',
        index: 'type',
        width: 100
    }, {
        name: 'owner',
        index: 'owner',
        width: 200
    }, {
        name: 'status',
        index: 'status',
        width: 150
    }, {
        name: 'date',
        index: 'date',
        width: 150
    }],
    sortname: 'num',
    sortorder: 'asc',
    height: 'auto'
    });
    // TODO: Make this into an AJAX call.  This is just for demo.
    var mysubdata = [
    { orderid: 'O00001234', type: 'Data', owner: 'Melanie Martin', status: 'Saved', date: '2/4/2011 11:48:18 AM' },
    { orderid: 'O00001235', type: 'Voice', owner: 'Billy Solomon', status: 'Submitted to TC', date: '2/4/2011 12:03:47 PM' }
    ];
    for (var i = 0; i <= mysubdata.length; i++)
    jQuery('#' + subgrid_table_id).jqGrid('addRowData', i + 1, mysubdata[i]);
}

Когда отображаются ссылки в первом столбце сетки, они правильно отображают значение orderid как текст столбца (предварительноpended «O» является преднамеренным и должен проходить через систему следующим образом), но получаются следующие ссылки:

http://localhost/somestuff/AOFOrderFacilities.aspx?orderid=1
http://localhost/somestuff/AOFOrderFacilities.aspx?orderid=2

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

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Параметр форматирования idName форматера showlink говорит только о том, что имя параметра в URL, который вам нужен.Значение идентификатора всегда идентификатор строки.В вашем примере вы используете

var mysubdata = [
    { orderid: 'O00001234', type: 'Data', owner: 'Melanie Martin',
      status: 'Saved', date: '2/4/2011 11:48:18 AM' },
    { orderid: 'O00001235', type: 'Voice', owner: 'Billy Solomon',
      status: 'Submitted to TC', date: '2/4/2011 12:03:47 PM' }
];
for (var i = 0; i <= mysubdata.length; i++)
    jQuery('#' + subgrid_table_id).jqGrid('addRowData', i + 1, mysubdata[i]);

, которые дают в качестве rowid строк значения 1,2, mysubdata.length.Настройка key:true для столбца orderid будет игнорироваться по методу addRowData.Вы можете проверить в инструментах разработчика или в Firebug, какой идентификатор имеет <tr> элементов вашей сетки.

Я рекомендую вам изменить вышеуказанный код или просто использовать data:mysubdata в качестве дополнительного параметра jqGrid вместо использованияболее медленный старый метод addRowData.Потому что вы определили key:true все должно работать правильно.Вы также можете использовать localReader:{id:'orderid'} в качестве дополнительного параметра jqGrid.

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

Не уверен, что вы, ребята, уже решили эту проблему, НО я получил его для отправки идентификатора по своему выбору, установив читатель json следующим образом:

jsonReader: { repeatitems: false, id: "[property whose value you want to pass]" },

Rich

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