столбец ссылок html в jqGrid

Возможно ли иметь html-ссылку в столбце с jqGrid, я не могу найти ни одного примера в документации?


person Danny    schedule 22.07.2009    source источник
comment
@djangofan jQuery и ExtJs — это две разные среды, которые не имеют ничего общего с сетками. Я не понимаю, какое отношение ваш комментарий имеет к этому вопросу.   -  person Charles Boyung    schedule 12.05.2012


Ответы (6)


Да, используйте средство форматирования, либо собственное средство форматирования, либо предустановленное средство форматирования. .

person Craig Stuntz    schedule 22.07.2009
comment
ссылка с ответом битая - person IT ppl; 10.11.2012
comment
ссылка уже исправлена - person ZAD-Man; 10.09.2015

Вот пример конфигурации colModel из ссылки Крейга на справку по форматированию jqGrid. Форматировщик указывается как showLink, а URL и параметры указываются с помощью formatooptions.

colModel: [ {name:'myname', 
             edittype:'select', 
             formatter:'showlink', 
             formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit'}
person Randy Klingelheber    schedule 23.03.2010
comment
Спасибо за публикацию образца. Всегда полезно :) - person Dan; 07.05.2010
comment
Он добавляет id=bla к базовому URL-адресу. Могу ли я изменить идентификатор на что-то другое, например data_id или record_id? Я нашел, как это сделать. - person digz6666; 15.02.2011

Извините, что публикую на старый вопрос, но вот еще один вариант, который сработал для меня: просто создайте пользовательский formatter и вернуть тег привязки (хороший вариант, если вам нужен действительно детальный контроль над ссылкой):

function returnMyLink(cellValue, options, rowdata, action) 
{
    return "<a href='/Controller/Action/" + options.rowId + "' >Click here</a>";
}   

Посмотрите в rowdata данные, возвращенные вашим запросом. Надеюсь, это поможет кому-то!

person Patrick    schedule 15.08.2011
comment
Используйте его, если вам нужна часть идентификатора ссылки, а не параметр. например. вы хотите /mylink/123/ а не /mylink?id=123 - person PhoebeB; 20.09.2011
comment
этот подход с настраиваемым форматером потребует дальнейшей работы с опциями редактирования, потому что полный вывод будет помещен туда как значение. - person Email; 20.02.2012

в данных json, которые я использую для сетки, я просто отправляю html-код обратно с тегом href, который работает для меня

person beakersoft    schedule 11.11.2009
comment
Работал на меня. В действии контроллера MVC у меня сработало что-то вроде этого при создании объекта json: @"<a href=""" + Url.Content("~/People/Details/" + p.PeopleKey.ToString()) + @""">" + p.Name + "</a>" Однако это нарушает сортировку, поскольку он сталкивается с PeopleKey перед именем. Но я уверен, что для этого есть другая работа. - person AaronLS; 19.04.2012
comment
Удалось исправить сортировку. Нужно добавить еще один столбец, который представляет собой просто текст для сортировки, по которому скрыт { name: 'Name', index: 'Name', hidden: true},, а затем указать имя этого столбца в индексе видимого столбца: {width: 190, name: 'NameUrl', index: 'Name'}, - person AaronLS; 28.04.2012

Если вы используете данные xml, вы можете добавить в запрос фиктивный столбец, чтобы отобразить его в сетке.

сетка:

colModel :[{name:'EDIT',edittype:'select',formatter:'showlink', width:5,xmlmap:"Edit",formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit'}},

запрос:

select f1,f2,f3, 'Edit' as Edit FROM table
person yei    schedule 18.04.2011

в xml я использую сущность вместо ‹ в теге a, подобном этому, a href="dest">my link/a> и отлично работает с jqgrid 3.6

person user214553    schedule 19.11.2009