Привет. Я пытаюсь заставить работать форматировщик showlink, следуя этому документу от trirand.
То, чего я хочу добиться, - это гиперссылка, по которой я могу щелкнуть для просмотра в режиме редактирования, чтобы обновить / отредактировать записи. Но по какой-то причине столбец пуст, где я хочу показать гиперссылку.
Вот мои фрагменты кода, а ссылка - последний столбец:
<script type="text/javascript">
$(document).ready(function () {
$("#grid_products").jqGrid({
jsonReader: {
repeatitems: false,
id: 'Guid'
},
url: '/Product/jqgridJSON/',
datatype: 'json',
mtype: 'GET',
colNames: ['ProductCode', 'ProductDescription', 'DefaultSellPrice', 'LastCost', 'Edit'],
colModel: [
{ name: 'ProductCode', index: 'Productcode' },
{ name: 'ProductDescription', index: 'ProductDescription' },
{ name: 'DefaultSellPrice', formatter: 'currency', index: 'DefaultSellPrice' },
{ name: 'LastCost', formatter: 'currency', index: 'LastCost' },
{ name: 'MyLink',
edittype: 'select',
formatter: 'showlink',
formatoptions: { baseLinkUrl: '/Product/Update/', idName: 'Guid' }
},
],
pager: '#pager',
rowNum: 10,
rowList: [20, 50, 100, 200],
sortname: 'ProductCode',
sortorder: 'asc',
viewrecords: true,
width: 'auto',
height: 'auto',
caption: 'Products'
}).navGrid('#pager', { edit: true, add: false, del: false });
});
</script>
@{
ViewBag.Title = "JSONGrid";
}
<h2>JSONGrid</h2>
<table id="grid_products"></table>
<div id="pager"></div>
Форматер из jqGrid работает для валюты, но по какой-то причине он просто не отображается для гиперссылки.
Обновление:
Получил работу с помощью пользовательского форматера.
...
{ name: 'MyLink',
formatter: myLinkFormatter,
},
...
function myLinkFormatter (cellvalue, options, rowObjcet) {
return '<a href = "/Product/Edit/' + options.rowId + '">Edit this product</a>';
}