2014-02-20 84 views
0

我使用jQuery(JQwidgets)在網格中顯示值。我有一個數據庫與多列,並可以說我有在列A的值「http://www.google.com」,並在B列值「谷歌」。jquery結合兩個mysql值

我想要的是在網格中顯示「谷歌」,當人們點擊它時,它會打開網址。

現在我有這個代碼從數據庫中獲取變量。

 var source = 
     { 
      datatype: "json", 
      datafields: [ 
      { name: 'sitename', type: 'string'}, 
    { name: 'url', type: 'string'}, 
      ], 
      url: 'http://www.site.com/data.php', 
      cache: false 
     }; 

後,該值是使用這個顯示...

$("#jqxgrid").jqxGrid(
     { 
      pagesize : 25, 
      pagesizeoptions: ['25', '50', '100'], 
      width : 1170, 
      theme:"black", 
      source: dataAdapter, 
      pageable: true, 
      autoheight: true, 
      selectionmode: 'multiplecellsextended', 
      columns: [ 
      { text: 'Website', datafield: 'website' , width: 700, cellsrenderer: linkrenderer}, 
      ] 
     }); 

所以我不能去工作是將兩個值組合。我試過的是...

 var website = function (row, datafield, value) { 
      return 'sitename' + 'url'; 
     } 

回答

0

你還沒有設置linkrenderer函數。

以上,添加

var linkrenderer = function(row, column, value, defaultHtml, columnSettings, rowData) { 
    return '<a href="' + rowData.url + '">' + value + '</div>'; 
} 

最後一列rowData是一個已經呈現一切的JSON對象,所以也許添加列

columns: [{text: 'URL', datafield: 'url' , width: 100}, {text: 'Website', datafield: 'sitename' , width: 700, cellsrenderer: linkrenderer}] 

隱藏URL列

$("#jqxgrid").jqxGrid('hidecolumn', 'url'); 
+0

感謝您的回覆。但是,這是我擁有的linkrenderer ... - \t \t \t var linkrenderer = function(row,column,value){ if(value.indexOf('#')!= -1){ value = value.substring (0,value.indexOf('#')); } var format = {target:'「_blank」data-rokbox =「」'}; var html = $ .jqx.dataFormat.formatlink(value,format); return html; } – user2959441

+0

它看起來並不像您使用'網站'列,因爲它不在您的數據源中的數據字段中。但是,如果你是,那麼只需創建單獨的列(url和sitename)並使用我提供的cellsrenderer函數。 – weiver

+0

謝謝,我明白了:) – user2959441