2016-07-11 9 views
0

Gibt es eine Möglichkeit dynamisch die "Formatierer" in jqGrid zu verwenden, ich Verwendung von formatTitle Funktion aus dem Code machen wollen hier dynamisch, ist mein Code:Wie man "Formatierer" dynamisch in jqGrid verwendet. Ist es möglich? ?

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, wha t ist der Fehler, den Sie bekommen ?? –

+0

@NagaSaiA: Ich bin dabei, den Formatierer im Colmodel wie folgt hinzuzufügen: für (var i = 0; i Apek

Antwort

0

Sie haben die Formatierer in einem String zu setzen, wie

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

Dann defind Sie den Formatierer vor dem Code jqGrid als

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

folgt Weil es in einem String (Formatierer: „formatTitle“) gewickelt ist, kann nicht Sie Ihre frühere Signatur für den Formatierer verwenden, die

Funktion war formatTitle (Cellvalue, Optionen, rowObject) Dies kann verwendet werden, wenn Formatierer: formatTitle, die nicht möglich ist, dynamisch zu konstruieren

Hier ist eine jsfiddle Lösung für Ihr Problem

Verwandte Themen