Столбец изображения в jqGrid?
Мне нужен столбец изображения в моем jQGrid, я использовал форматтер, но не работает, пожалуйста, дайте мне решение для этого.
мой код выглядит следующим образом:
jQuery(document).ready(function() {
var TheGrid ;
var resp;
jQuery("#registerUsers").jqGrid({
url: 'EventsList.aspx',
datatype: "json",
colNames: ['Name', 'Company Name', 'Responsible Name', 'Date/Time', 'Id'],
colModel: [{ name: 'GuestName', index: 'GuestName', width: 150, editable: true, editoptions: {readonly: true, size: 10} },
{ name: 'CompName', index: 'CompName', width: 150, editable: false, editoptions: { readonly: true, size: 10} },
{ name: 'RespName', index: 'RespName', width: 150, editable: false, editoptions: { readonly: true, size: 10} },
{ name: 'RegisterDate', index: 'RegisterDate', width: 150, editable: false, editoptions: { readonly: true, size: 10} },
{ name: 'Register_Id', index: 'Register_Id', width: 100, align: 'left', formatter: checkboxFormatter },
],
rowNum: 10,
rowList: [10, 20, 30],
pager: jQuery('#Userpager'),
sortname: 'Register_Id',
viewrecords: true,
sortorder: "desc",
imgpath: '/scripts/themes/steel/images',
caption: "Registered Users"
});
});
jQuery("#registerUsers").jqGrid('navGrid', '#Userpager', { edit: false, add: false, del: false });
function checkboxFormatter(el, cval, opts) {
debugger;
cval = cval + ""; cval = cval.toLowerCase();
// var bchk = cval.search(/(false|0|no|off|n)/i) < 0 ? " checked=\"checked\"" : "";
var UserId = jQuery("#registerUsers").getCell(RowId, 'Register_Id');
$(el).html("<center><img src='../images/gnome-session-logout.png' width='15px' height='15px' onclick=javascript:LogOutUser(" + UserId + ");/></center>");
// <input type='checkbox' onclick=\"ajaxSave('" + opts.rowId + "', this);\" " + bchk + " value='" + cval + "' offval='no' />
}
Пожалуйста, помогите мне
Спасибо
Ritz
Ответы
Ответ 1
вы можете просто вернуть тег img в виде строки в форматировании, например:
function unitsInStockFormatter(cellvalue, options, rowObject) {
var cellValueInt = parseInt(cellvalue);
if (cellValueInt > 10)
return "<img src='../../Content/images/ui-flag_green.png' alt='" + cellvalue + "'title='" + cellvalue + "' />";
else if (cellValueInt > 0)
return "<img src='../../Content/images/ui-flag_blue.png' alt='" + cellvalue + "'title='" + cellvalue + "' />";
else
return "<img src='../../Content/images/ui-flag_red.png' alt='" + cellvalue + "'title='" + cellvalue + "' />";
};
как описано здесь:
http://tpeczek.com/2009/11/jqgrid-and-aspnet-mvc-formatting.html
Ответ 2
См. can-you-have-images-or-any-custom-html-displayed-in-jquery-grid-jqgrid-cells для получения инструкций по отображению изображений в ячейках.
В принципе, похоже, что вам может понадобиться удалить цитаты из вашего элемента src.
Ответ 3
Простое решение может быть выполнено непосредственно из запроса:
выберите idres, 'HTML-IMG-src= images/tick_' || || '.png' как зарезервированный, indate, outdates from table; - запрос postgres
Если зарезервировано 0 или 1 и отражается в имени файла изображения "tick_1.png" или "tick_0.png" в зависимости от значения поля "зарезервировано"
Надеюсь, что это поможет
Ответ 4
Я нашел это решение.
Если на вашей странице вы включаете только таблицу, вставив скрипты и таблицы стилей и после включения страницы grid.php, вы можете отформатировать ячейку для отображения изображения следующим образом:
Поместите код ниже в grid.php:
$grid->setColProperty("COLUMN NAME", array("formatter"=>"js:formatImage"));
Затем введите строковую переменную java script для функции formatImage следующим образом:
$IMAGE_FORMAT_STRING = <<<IMAGE_FORMAT_FUNCTION
function formatImage(cellValue, options, rowObject) {
var imageHtml = "";
if(cellValue){
if(cellValue.indexOf("_thumb") == -1){
imageHtml = '<div><a href="' + cellValue + '" title="" target="_blank">' + cellValue + '</a></div>';
}else{
imageHtml = '<div class="gallery"><a href="' + cellValue.replace('_thumb', '') + '" title=""><img src="' + cellValue + '" width="50" height="50" alt="" border="0"/></a></div>';
}
}
return imageHtml;
}
function unformatImage(cellValue, options, cellObject) {
return $(cellObject.html()).attr("originalValue");
}
IMAGE_FORMAT_FUNCTION;
и выше grid- > renderGrid, поставьте код JavaScript следующим образом:
$grid->setJSCode($IMAGE_FORMAT_STRING);
Надеюсь, это поможет кому-то!