2013-09-20 3 views
0

: enter image description hereпараметра пользовательских ссылок в jqgrid

, когда пользователь щелкает по формуле ссылки 1, я хочу, чтобы перенаправить на http://en.wikipedia.org/wiki/7 вместо http://en.wikipedia.org/wiki/Formula 1

где 7 является идентификатором Формулы 1

мой ответ JSON, как ниже

{"rows":[{"id":7,"person":"Michael Schumacher","type":"Sport","name":"Formula 1"}, 
      {"id":8,"person":"Lukas Podolski","type":"Sport","name":"Football"}, 
      {"id":9,"person":"Blaise Pascal","type":"Sport","name":"mathematics"}, 
      {"id":6,"person":"Albert Einstein","type":"Sport","name":"Physics"}]} 

кодекс jqgrid является

 jQuery("#list2").jqGrid({ 
    url:"***.****", 
     datatype: "json", 
      mtype: 'GET', 
      colNames:['Name','Category','Subcategory'], 
      colModel:[ 
       {name:'person',index:'person', width:150}, 
       {name:'type',index:'type', width:150}, 
       {name:'name',index:'name', width:150,   
        formatter: function (cellvalue, options, rowObject) { 
         var cellPrefix = ''; 
         return cellPrefix + '<a href="http://en.wikipedia.org/wiki/' + cellvalue + '">' + 
           cellvalue + '</a>'; 
        }} 

      ], 

      width:"647px", 
      caption:"How to create custom Unobtrusive links" 

     }); 
+0

Что происходит в клетке? – Jai

+0

@Jai cellvalue дает формулу 1 –

ответ

1

Попробуйте с этим:

colNames:['Id','Name','Category','Subcategory'], 
colModel:[ 
      {name:'id',index:'id', width:150, hidden: true}, 
      {name:'person',index:'person', width:150}, 
      {name:'type',index:'type', width:150}, 
      {name:'name',index:'name', width:150,  
      formatter: function (cellvalue, options, rowObject) { 
         var pageId = jQuery('[id="' + options.rowId + '"]').find('td:first').text(); 
         return '<a href="http://en.wikipedia.org/wiki/' + pageId + '">' + 
         cellvalue + '</a>'; 
      } 

Попробуйте положить скрытые истинны и получить текст из этого тд.

+0

Но я не хочу использовать rowid, я хочу использовать id («7»), входящий в Json respone, так как URL будет «http: //en.wikipedia. org/wiki/7 ', если я использую идентификатор строки, тогда он вернет 1 (не 7) –

+0

Итак, тогда вы должны использовать имена столбцов и модели столбцов. подождите некоторое время ... – Jai

2

Вы можете просто заменить cellvalue внутри кода пользовательского форматировщиком для options.rowId:

formatter: function (cellvalue, options) { 
    return '<a href="http://en.wikipedia.org/wiki/' + options.rowId + '">' + 
      cellvalue + '</a>'; 
} 

Вы должны дополнительно зафиксировать ваши данные в формате JSON и использовать "name":"Formula 1" вместо "name"="Formula 1" (то же самое для всех данных "name" колонки) , Вероятно, это просто ошибка ввода во время подготовки вашего вопроса в stackoverflow.

+0

Но я не хочу использовать rowid, я хочу использовать id («7»), входящий в Json respone, так как URL будет «http://en.wikipedia.org/wiki/7 ', если я использую идентификатор строки, тогда он вернет 1 (не 7) –

+0

да «имя» = «формула 1» является ошибкой, я обновил –

+1

@ Субратнайак .: Значение свойства 'id' каждого элемента данных будет присвоено значение ** атрибута 'id' строки ** (). jqGrid называет 'id' строки как rowid. Поэтому 'options.rowId' элемента, имеющего' 'id": 7', будет '' 7 "'. Вы должны просто попробовать это, и вы получите URL-адрес, созданный форматированием. – Oleg

Смежные вопросы