2016-07-11 6 views
0

Есть ли способ, чтобы динамически использовать «форматировщик» в jqGrid Я хочу использовать функцию formatTitle из кода динамически, Вот мой код:Как использовать «форматирование» динамически в jqGrid.Is это возможно? ?

HTML

<table id="list47"><tr><td></td></tr></table> 
<div id="plist47"></div> 

Javascript:

var md=[{ "id": "83123a", Name: "Name 1", "PackageCode": "83123a" }, 
       { "id": "83432a", Name: "Name 3", "PackageCode": "83432a" }, 
       { "id": "83566a", Name: "Name 2", "PackageCode": "83566a" }] 

var he=["id","Name","PackageCode"]; 
var c=[]; 

for(var i=0;i<he.length;i++){ 

    c.push('{"name":"'+he[i]+'","index":"'+he[i]+'"}'); 
} 
var colmodel="["+c+"]" 

//var colmodel= [{name:'id', index:'id', width:55}, 
     //  {name:'Name', index:'Name' }, 
      //  {name:'PackageCode', index:'PackageCode'}] 

    // c.push('{"name":"'+he[i]+'","index":"'+he[i]+'"'+'"formatter":'+formatTitle+'}');     
jQuery("#list47").jqGrid({ 
    //data: md, 
    datatype: "local", 
    height: 150, 
    rowNum: 10, 
    colNames: he, 
    colModel: jQuery.parseJSON(colmodel), 
    rowList: [10,20,30], 
    pager: "#plist47", 
    viewrecords: true, 
    caption: "json data grid" 
}); 
for(var i=0;i<md.length;i++){ 
jQuery("#list47").addRowData(i+1,md[i]); 
} 

    function formatTitle(cellValue, options, rowObject) { 
       return "<a href='" + rowObject.Link + "'>" + cellValue.substring(0, 45) + "..." + "</a>"; 
       //return cellValue.substring(0, 50) + "..."; 
      }; 
+0

Apeksha, в t - ошибка, которую вы получаете? –

+0

@NagaSaiA: Я связываю, чтобы добавить форматировщик в colmodel следующим образом: для (var i = 0; i Apek

ответ

0

Вы должны поставить форматировщик в строку следующим образом

for(var i=0;i<he.length;i++){ 
c.push('{"name":"'+he[i]+'","index":"'+he[i]+'"'+',"formatter":"formatTitle"'+'}'); 
} 

Тогда вы задаваемая форматеру перед кодом jqGrid следующим

$.fn.fmatter.formatTitle = function (cellValue, options, rowObject) { 
    return "<a href='" + rowObject.Link + "'>" + cellValue.substring(0, 45) + "..." + "</a>";   
    }; 

Потому что он обернут в строке (форматировщик: «formatTitle») вы не можете использовать прежнюю подпись для форматера, который был

функции formatTitle (CellValue, опция, rowObject) Это может быть использовано, если форматировщик: formatTitle что невозможно построить динамически

Вот jsfiddle решения вашей проблемы

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

  • Нет связанных вопросов^_^