2013-03-19 100 views
1

上午的jqGrid工作的地方,我用這個例子jqGrid and dynamic column binding在JSON字符串刪除雙引號 - 函數調用

一切看起來不錯裝載COLNAME & ColModel動態。現在用格式化的欄目之一格式化

function UrlFmatter(cellvalue, options, rowObject) { 
} 

當我寫專欄中.JS它看起來像這樣

colmodel :[{ name: 'somenam', formatter: UrlFmatter, width: 95, align: "center", index: 'somenam'}] 

的上午動態加載現在它是不工作的功能是不是叫我想。

我以爲formatter: "UrlFmatter"它是這樣加載,並使其成爲一個字符串。我如何進行這個函數調用?

或者是否有更好的方法可以處理這些情況?

+0

'格式:UrlFmatter'纔是正道。你在哪裏定義'函數UrlFmatter()' – 2013-03-19 05:44:36

+0

是的,這是正確的方式。但是,在附加的json「」中。如果我刪除它會調用該功能或​​任何其他方式 – user2067567 2013-03-19 05:46:14

+0

請參閱此鏈接(http://stackoverflow.com/questions/13792329/how-to-pass-a-function-name-via-json-and-call -it-in-javascript-jquery)用於瞭解如何調用發生在json數據中的函數名稱 – 2013-03-19 06:13:26

回答

1

它似乎與您的舊問題完全相同。正如我在前面回答(見here),你應該從

function UrlFmatter(cellvalue, options, rowObject) { 
    return "<a href='DetailResult?airportname=" + options.rowId + "' >" + 
     cellvalue + "</a>"; 
} 

取代的UrlFmatter定義

(function ($) { 
    "use strict"; 
    $.extend($.fn.fmatter, { 
     urlFmatter: function (cellValue, options) { 
      return "<a href='DetailResult?airportname=" + options.rowId + "' >" + 
       cellvalue + "</a>"; 
     } 
    }); 
}(jQuery)); 

jquery.jqGrid.min.js直接(或jquery.jqGrid.src.js後)你應該包括上面的代碼。之後,你可以修改

{ name: 'somenam', formatter: UrlFmatter, width: 95, align: "center", index: 'somenam'} 

{ name: 'somenam', formatter: "urlFmatter", width: 95, align: "center"} 
+0

同意itz是重複的。我標記爲解決方案:)謝謝你的幫助 – user2067567 2013-03-19 08:55:32

+0

@ user2067567:不客氣! – Oleg 2013-03-19 09:02:16